home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 003 / wampdoc.arc / WAMPUM30.DOC
Encoding:
Text File  |  1986-09-08  |  288.7 KB  |  4,888 lines

  1.  
  2.  
  3.  
  4.  
  5.           
  6.           
  7.           
  8.           
  9.           
  10.           
  11.           
  12.           
  13.           
  14.                               WAMPUM User's Guide
  15.           
  16.                          Copyright (c) Ward Mundy, 1986.
  17.           
  18.           
  19.           
  20.           
  21.           
  22.           
  23.           
  24.           
  25.           
  26.           
  27.           
  28.           
  29.           
  30.           
  31.           
  32.           
  33.           
  34.           
  35.           
  36.           
  37.           
  38.           
  39.           
  40.           
  41.           
  42.           
  43.           
  44.           
  45.           
  46.           
  47.                WAMPUM is licensed for use and distribution within the
  48.           general public so long as no charge is made for the software
  49.           other than the actual cost of the media.
  50.           
  51.                Comments and suggestions regarding the software are welcome.
  52.           If you would like notification of major updates and future
  53.           product releases, please send $20 to the author at the address
  54.           below:
  55.           
  56.           
  57.                               Ward Mundy
  58.                               4160 Club Drive
  59.                               Atlanta, GA 30319 
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                             WAMPUM User's Guide
  68.                        Copyright (c) Ward Mundy, 1986.
  69.                              TABLE OF CONTENTS
  70.  
  71.           1  Overview  . . . . . . . . . . . . . . . . . . . . . . . .    1
  72.              1.1  What is WAMPUM Anyway? . . . . . . . . . . . . . . .    1
  73.              1.2  Summary of Features  . . . . . . . . . . . . . . . .    1
  74.              1.3  System Requirements  . . . . . . . . . . . . . . . .    2
  75.              1.4  Getting Started  . . . . . . . . . . . . . . . . . .    2
  76.                 1.4.1  Loading the Program . . . . . . . . . . . . . .    2
  77.                    1.4.1.1  Where to Put It  . . . . . . . . . . . . .    2
  78.                    1.4.1.2  How to Run It  . . . . . . . . . . . . . .    2
  79.                 1.4.2  Maneuvering on the Main Menu  . . . . . . . . .    3
  80.              1.5  Quitting WAMPUM  . . . . . . . . . . . . . . . . . .    3
  81.              1.6  Using the Cursor & Function Keys . . . . . . . . . .    4
  82.           2  End-User Functions  . . . . . . . . . . . . . . . . . . .    5
  83.              2.1   A - ADDing New Records  . . . . . . . . . . . . . .    5
  84.              2.2   E - EDITing Records . . . . . . . . . . . . . . . .    6
  85.              2.3   D - DISPLAYing Records  . . . . . . . . . . . . . .    8
  86.              2.4   M - MARKing a Record for Deletion . . . . . . . . .    9
  87.              2.5   U - UNDELETing a Record . . . . . . . . . . . . . .   11
  88.              2.6   P - PRINTing Records  . . . . . . . . . . . . . . .   13
  89.              2.7   X - REBUILD/FileFix . . . . . . . . . . . . . . . .   14
  90.              2.8   S - SELECT Utilities  . . . . . . . . . . . . . . .   15
  91.                 2.8.1  Overview  . . . . . . . . . . . . . . . . . . .   15
  92.                 2.8.2  Record Selection Criteria . . . . . . . . . . .   15
  93.                 2.8.3  Listing File Contents . . . . . . . . . . . . .   20
  94.                 2.8.4  Changing Current Data Entry Menu  . . . . . . .   21
  95.                 2.8.5  Picking the Lead Index  . . . . . . . . . . . .   21
  96.                 2.8.6  Setting Browse Mode ON  . . . . . . . . . . . .   21
  97.                 2.8.7  Listing the File Structure  . . . . . . . . . .   22
  98.              2.9   R - REPORTS Generation  . . . . . . . . . . . . . .   23
  99.              2.10  L - LABELS Production . . . . . . . . . . . . . . .   23
  100.              2.11  T - FORM LETTER Generation  . . . . . . . . . . . .   24
  101.              2.12  W - WAMPUM Preformatted Output  . . . . . . . . . .   25
  102.              2.13  Printer Selection Screen  . . . . . . . . . . . . .   26
  103.                 2.13.1  Printed Output . . . . . . . . . . . . . . . .   26
  104.                 2.13.2  Output All Records . . . . . . . . . . . . . .   26
  105.                 2.13.3  Output Records Marked for Deletion . . . . . .   26
  106.              2.14  On-Line HELP  . . . . . . . . . . . . . . . . . . .   26
  107.           3  Developer Functions . . . . . . . . . . . . . . . . . . .   28
  108.              3.1  Creating A New Application . . . . . . . . . . . . .   28
  109.                 3.1.1   Overview of Application Development Strategy .   28
  110.                 3.1.2   Create A New SubDirectory  . . . . . . . . . .   29
  111.                 3.1.3   Building a New File  . . . . . . . . . . . . .   30
  112.                 3.1.4   Selecting the New File . . . . . . . . . . . .   31
  113.                 3.1.5   Indexing the New File  . . . . . . . . . . . .   31
  114.                    3.1.5.1  Overview . . . . . . . . . . . . . . . . .   31
  115.                    3.1.5.2  Creating New Indexes . . . . . . . . . . .   32
  116.                    3.1.5.3  Selecting Indexes  . . . . . . . . . . . .   33
  117.                 3.1.6   Printer Configuration (.MEM file)  . . . . . .   33
  118.                    3.1.6.1  Overview . . . . . . . . . . . . . . . . .   33
  119.                    3.1.6.2  Selecting an Existing Printer Table  . . .   34
  120.                    3.1.6.3  Creating a New Printer Table . . . . . . .   35
  121.                 3.1.7   Menu Heading for New Application . . . . . . .   36
  122.                 3.1.8   Relating the New File  . . . . . . . . . . . .   36
  123.                 3.1.9   Storing the New Configuration (WAMPUM.MEM) . .   37
  124.                 3.1.10  Building Reports, Labels, and Form Letters . .   37
  125.                    3.1.10.1  REPORTS . . . . . . . . . . . . . . . . .   37
  126.                       3.1.10.1.1  Overview . . . . . . . . . . . . . .   37
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.                       3.1.10.1.2  Creating A New Report Format . . . .   38
  139.                       3.1.10.1.3  Modifying Existing Report Formats  .   43
  140.                       3.1.10.1.4  Outputting MEMO fields in Reports  .   43
  141.                    3.1.10.2  LABELS  . . . . . . . . . . . . . . . . .   43
  142.                       3.1.10.2.1  Overview . . . . . . . . . . . . . .   43
  143.                       3.1.10.2.2  Creating A New Label Format  . . . .   45
  144.                       3.1.10.2.3  Modifying An Existing Label Format .   46
  145.                    3.1.10.3  FORM LETTERS  . . . . . . . . . . . . . .   46
  146.                       3.1.10.3.1  Overview . . . . . . . . . . . . . .   46
  147.                       3.1.10.3.2  Creating a New Form Letter File  . .   47
  148.                       3.1.10.3.3  Building Data in Form Letter File  .   47
  149.                       3.1.10.3.4  WAMPUM Field Data Expressions  . . .   49
  150.                 3.1.11  Building Function Key Macros (KEYS.DBF)  . . .   50
  151.                 3.1.12  Building Edit Checks (EDIT.DBF)  . . . . . . .   52
  152.                 3.1.13  Building Data Entry Menus (MENUS.DBF)  . . . .   57
  153.                 3.1.14  Building an Audit Trail File (AUDIT.DBF) . . .   59
  154.                 3.1.15  Preformatted Output (WAMPUM.DBF) . . . . . . .   60
  155.                    3.1.15.1  Overview  . . . . . . . . . . . . . . . .   60
  156.                    3.1.15.2  Building the WAMPUM File  . . . . . . . .   61
  157.                    3.1.15.3  Adding/Editing the WAMPUM File  . . . . .   61
  158.                 3.1.16  Resetting the Developer Password . . . . . . .   62
  159.                 3.1.17  Making a Backup of the User Application  . . .   62
  160.                 3.1.18  Writing the Documentation  . . . . . . . . . .   63
  161.              3.2  ! - RUNning an External Program  . . . . . . . . . .   63
  162.              3.3  Z - ZOOMing or RELATing a Supplemental File  . . . .   63
  163.              3.4  C - Copy Utilities for Importing & Exporting Data  .   64
  164.              3.5  Deleting & Undeleting Groups of Records  . . . . . .   67
  165.              3.6  Reserved Variables & Special Functions . . . . . . .   67
  166.                 3.6.1   Overview . . . . . . . . . . . . . . . . . . .   67
  167.                 3.6.2   LASTUPDT field in data bases . . . . . . . . .   68
  168.                 3.6.3   LASTTIME field in data bases . . . . . . . . .   68
  169.                 3.6.4   DUPKEY("FIELDNAME") prevents duplicate keys  .   68
  170.                 3.6.5   FULLDATE(DATE()) outputs May 27, 1986 format .   68
  171.                 3.6.6   DTOS(DATE()) outputs 19860527 string . . . . .   68
  172.                 3.6.7   WEEKDAY(DATE()) rolls weekend over to Mon. . .   69
  173.                 3.6.8   DATE() outputs today's date as 05/27/86  . . .   69
  174.                 3.6.9   DTOC(DATE()) outputs date as 05/27/86 string .   69
  175.                 3.6.10  MEMOTRAN(fieldname) outputs MEMO fields  . . .   69
  176.                 3.6.11  EMPTY(fieldname) tests for empty fields  . . .   69
  177.              3.7  PATH considerations with WAMPUM  . . . . . . . . . .   69
  178.              3.8  WAMPUM System Errors . . . . . . . . . . . . . . . .   70
  179.              3.9  Credits  . . . . . . . . . . . . . . . . . . . . . .   71
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.           1  Overview
  207.           
  208.           1.1  What is WAMPUM Anyway?
  209.           
  210.                Ward's Automated Menu Package Using Microcomputers (WAMPUM)               Ward's Automated Menu Package Using Microcomputers (WAMPUM)
  211.           is a full-featured, menu-driven implementation of the dBASE III
  212.           programming language.  It is both an application development tool
  213.           and an end-user data base management system with one significant
  214.           difference: it's free.  Subject to the system requirements
  215.           outlined below and the caveats which are displayed when the
  216.           software is run, you may use or transfer this software without
  217.           charge of any kind other than the actual cost of the media.  You
  218.           do not have to own dBASE III to use this version of WAMPUM.  Yet             ___                                                                                                                        WAMPUM                   ___                                                          
  219.           you can perform virtually all of the functions supported by dBASE
  220.           III within the simple menu system which is WAMPUM.                                                     WAMPUM 
  221.           
  222.                Special thanks to Nantucket, Inc., the developer of Clipper,                                                                   _______ 
  223.           the premier dBASE III compiler.  Without Clipper, there would be                                                   _______                
  224.           no WAMPUM.  Its flexibility and many enhancements over             WAMPUM                                             
  225.           Ashton-Tate's dBASE interpreters made development of WAMPUM a                                                               WAMPUM  
  226.           true labor of love.  We also express our appreciation to
  227.           Nantucket for authorizing the distribution of their REPORT.EXE
  228.           and LABEL.EXE programs to end-users free of charge.  These two
  229.           programs simulate the dBASE III commands of CREATE REPORT and
  230.           CREATE LABEL and make WAMPUM a complete stand-alone application                                WAMPUM                                   
  231.           development system without reliance upon any dBASE interpreter.
  232.           
  233.           
  234.           1.2  Summary of Features
  235.           
  236.                As noted, WAMPUM provides much of the functionality of dBASE                         WAMPUM                                            
  237.           III through its simple menu interface.  Some of the features
  238.           included in WAMPUM are outlined below.  For a more detailed look                      WAMPUM                                              
  239.           at individual features, consult that section of the User's Guide.
  240.           
  241.                Key features include:
  242.           
  243.                *  Creation and use of dBASE III-compatible data bases
  244.                *  Field types include: Char, Numeric, Date, Logical, Memo
  245.                *  Creation and use of up to 5 B-Tree Indexes per .DBF file
  246.                *  Add, Edit, Delete, & Undelete Records in any .DBF file
  247.                *  Display, List and Print Records from any .DBF file
  248.                *  10 Data Entry Screen Formats tailored to any .DBF file
  249.                *  Creation and use of dBASE III-compatible reports & labels
  250.                *  Creation and use of WAMPUM "mail merge" form letters
  251.                *  Relation of second data base by key for any output format
  252.                *  Full-featured copy utilities to import & export any data
  253.                *  Creation of printer templates to support up to 10 fonts
  254.                *  Library of preformatted output forms with sort & select 
  255.                *  Library of edit-checks tailored to any .DBF file system
  256.                *  Library of macros tailored to any WAMPUM application
  257.                *  Calculated fields using standard dBASE expressions
  258.                *  File and index packing to restore damaged data bases
  259.                *  Automated Selection Assist for complex Boolean searches
  260.                *  Boolean searches of dBASE III-compatible MEMO fields
  261.                *  Audit Trail / Transaction Logging for multi-user tasks
  262.  
  263.  
  264.  
  265.                                         - 1 -
  266.  
  267.  
  268.  
  269.  
  270.  
  271.  
  272.           1.3  System Requirements
  273.           
  274.                WAMPUM may be used on any IBM PC-compatible computer running               WAMPUM                                                      
  275.           DOS 2.0 or higher with a hard disk.  For performance reasons, an
  276.           80286 processor is desirable. Minimum memory requirement is 320K
  277.           above and beyond the memory requirements of DOS and any memory-
  278.           resident programs in use.  Minimum memory is 420K to link to
  279.           REPORT and LABEL programs from within WAMPUM. Without much in the                                                WAMPUM                     
  280.           way of memory-resident software, WAMPUM typically needs 512K to                                           WAMPUM                        
  281.           operate satisfactorily after loading DOS. WAMPUM will run on                                                    WAMPUM            
  282.           either a monochrome or color display.  In the case of certain
  283.           compatibles such as Compaq, WAMPUM should be run in forced                                      WAMPUM                        
  284.           monochrome mode by issuing the command WAMPUM MONO.
  285.           
  286.                Because WAMPUM creates a number of work files from time to                       WAMPUM                                            
  287.           time, and because WAMPUM typically works with numerous files open                            WAMPUM                                         
  288.           at the same time, you will need to make sure that when your
  289.           computer is started, a file named CONFIG.SYS exists in the root
  290.           directory of the boot disk.  This file must contain the following
  291.           entries with the minimum values shown:
  292.           
  293.                          FILES=20                         FILES=20
  294.                          BUFFERS=24                         BUFFERS=24
  295.           
  296.                Failure to include the above commands will result in very
  297.           unpredictable behavior of WAMPUM which could destroy data bases                                    WAMPUM                               
  298.           and indexes in use at the time of a very likely system crash!
  299.           
  300.           
  301.           1.4  Getting Started 
  302.           
  303.           1.4.1  Loading the Program
  304.           
  305.           1.4.1.1  Where to Put It
  306.           
  307.                WAMPUM is an executable program with the name WAMPUM.EXE.                WAMPUM                                                    
  308.           It should be copied into a directory on your hard disk which is
  309.           included in the PATH command whenever you start up your system. 
  310.           This will assure that WAMPUM can be run from any subdirectory on                                WAMPUM                                    
  311.           your hard disk.  If you are not familiar with the path command,
  312.           consult your DOS manual for more details.  Simply stated, the
  313.           PATH command tells DOS which directories (other than the current
  314.           one) should be searched whenever you ask the computer to run a
  315.           program.  In building systems, typically we set aside a directory
  316.           called \UTIL to store public domain software.  This directory is
  317.           included in the path command when the computer is started.  If
  318.           you have such a directory and it is in your PATH, then copy
  319.           WAMPUM into this directory.          WAMPUM                     
  320.           
  321.           
  322.           1.4.1.2  How to Run It
  323.           
  324.                WAMPUM is designed to support two, very different audiences.               WAMPUM                                                      
  325.           The first group is end-users, and the second is application
  326.           developers.  This design is implemented by providing two
  327.           different menus for the two groups. The end-user menu is designed
  328.  
  329.  
  330.  
  331.                                         - 2 -
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.           to let a user do the normal things that are done with a database:
  339.           adding, editing, and deleting  records; running reports and
  340.           labels; selecting the primary index for input and output of data;
  341.           and entering record selection criteria to narrow down which
  342.           records are produced in listings and reports.  Provision is also
  343.           made to allow the end-user to rebuild a damaged data base or
  344.           index typically occasioned by a power failure.  The end-user mode
  345.           is initiated by typing WAMPUM and pressing the <ENTER> key at the                                 WAMPUM                                    
  346.           DOS prompt.
  347.           
  348.                WAMPUM's developer mode contains all of the options outlined               WAMPUM                                                      
  349.           above plus a number of additional options designed to allow a
  350.           person to develop a data base application for others to use.  You                                                                        ___
  351.           do NOT have to be a programmer to become a good WAMPUM developer!          _________________________________________________________________                                                          WAMPUM                     _________________________________________________________________
  352.           The developer's mode allows the creation of new data files and
  353.           indexes as well as reports, labels, and printer formats.  It also
  354.           provides access to the data files used to develop edit checks,
  355.           data entry menus, macros, preformatted output, and form letters.
  356.           Finally it allows for customization of applications through the
  357.           storing of a configuration identifying the files, indexes,
  358.           printer, and name of each application. The developer mode is
  359.           initiated by typing WAMPUM VOODOO and pressing the <ENTER> key at                              WAMPUM VOODOO                                
  360.           the DOS prompt. 
  361.           
  362.                As previously noted, if you are using WAMPUM on a compatible                                                     WAMPUM                
  363.           such as the COMPAQ which makes DOS think it has a color card even
  364.           when using a monochrome display, then you may want to force
  365.           WAMPUM into monochrome mode by starting it with WAMPUM MONO or          WAMPUM                                          WAMPUM MONO   
  366.           WAMPUM VOODOO MONO.          WAMPUM VOODOO MONO 
  367.           
  368.           
  369.           1.4.2  Maneuvering on the Main Menu
  370.           
  371.                Once you have started WAMPUM by executing one of the                                     WAMPUM                        
  372.           commands outlined above, you will see the WAMPUM logo and then                                                    WAMPUM              
  373.           the Main System Menu.  Note that just below the menu is a one-
  374.           line sentence of HELP regarding the highlighted option.  You move
  375.           between the options with the UP and DOWN cursor keys.  The HOME                                       __     ____                   ____
  376.           key will take you to the first option on the menu, and the END                                                                     ___
  377.           key will move you to the last option.
  378.           
  379.                Execute a choice on the Main System Menu by pressing the
  380.           <ENTER> key when the choice desired is highlighted or by typing          _______                                                        
  381.           the LETTER corresponding to the choice you wish to run.
  382.           
  383.                Exit from WAMPUM to DOS and end the program by pressing the                         WAMPUM                                           
  384.           <ESC> key while the Main System Menu is displayed.          _____                                             
  385.           
  386.                Context-sensitive HELP on WAMPUM is always available by                                         WAMPUM                       
  387.           pressing the F1 function key on any screen.
  388.           
  389.           
  390.           1.5  Quitting WAMPUM
  391.           
  392.                As indicated, the <ESC> key is used to exit from WAMPUM to                                 _____                                                                                                   WAMPUM                                    _____                                   
  393.           DOS from the Main System Menu.
  394.  
  395.  
  396.  
  397.                                         - 3 -
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.           1.6  Using the Cursor & Function Keys
  405.           
  406.                A number of keys have special functions within the WAMPUM                                                                  WAMPUM
  407.           System.  Oftentimes, these keys are not the same as what you may
  408.           have used in previous dBASE III applications.  Please scan
  409.           through the summaries below before you attempt to either use or                                      ______                             
  410.           build a WAMPUM application.  Throughout this manual, you will see                  WAMPUM                                                   
  411.           references to multiple key combinations such as CTRL-W or                                                          ______   
  412.           ALT-F10.  Whenever you see a hyphenated key combination such as          _______                                                        
  413.           these, it means hold down the first key, then tap the second key,                          _________________________________________________
  414.           then release both keys.  For example, CTRL-W means hold down the          ______________________                ______                    
  415.           CTRL key, then tap the W key (case does not matter), then release
  416.           both keys.  ALT-F10 means hold down the ALT key, then tap the F10                      _______                                              
  417.           function key, then release both keys.  We use the word "TAP"
  418.           advisedly.  Most PC's have a "keyboard buffer" which remembers
  419.           keystrokes which may not yet have been displayed.  Every key on
  420.           the PC acts like repearing keys on a selectric typewriter. Thus,
  421.           TAP means touch and release promptly!
  422.           
  423.                <ESC> is the all-purpose key which is used to get you out of               <ESC>                                                       
  424.           trouble.  From ANY screen, you can always press the ESCape key to
  425.           exit without preserving what you already were doing.  From the
  426.           Main Menu, pressing ESC will terminate WAMPUM and return you to                                                 WAMPUM                  
  427.           the computer's operating system level.
  428.           
  429.                Ctrl-W is WAMPUM's SAVE key.  Pressing CTRL-W typically               Ctrl-W    WAMPUM                                       
  430.           tells the computer to SAVE what is displayed on the screen and
  431.           move on to the next step.  If you are a previous dBASE III user,
  432.           then CTRL-W is equivalent to dBASE III's CTRL-End key.
  433.           
  434.                Ctrl-Home moves the user to the first field on a data entry               Ctrl-Home                                                  
  435.           screen.
  436.           
  437.                Ctrl-End moves the user to the last field on a data entry               Ctrl-End                                                 
  438.           screen.
  439.           
  440.                <Enter> or Down Cursor completes an entry in a field and               <Enter> or Down Cursor                                  
  441.           moves the user to the next field, if any, on the screen.
  442.           
  443.                Up Cursor moves the user to the previous field, if any, on               Up Cursor                                                 
  444.           the screen.
  445.           
  446.                PgDn signifies that data entry for this screen of data has               PgDn                                                      
  447.           been completed and that the user wishes to SAVE the data and
  448.           continue.
  449.           
  450.                PgUp signifies that data entry for this screen of data has               PgUp                                                      
  451.           been completed and that the user wishes to SAVE the data and
  452.           continue backwards through the data base (except when ADDing new
  453.           records to the data base).
  454.           
  455.                Ctrl-Left Cursor moves the cursor to the beginning of the               Ctrl-Left Cursor                                         
  456.           current data entry field.
  457.           
  458.                Ctrl-Right Cursor moves the cursor to the end of the current               Ctrl-Right Cursor                                           
  459.           data entry field.
  460.  
  461.  
  462.  
  463.                                         - 4 -
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.           
  471.                Ctrl-Y deletes the contents of the current field from the               Ctrl-Y                                                   
  472.           cursor position to the end of the field.
  473.           
  474.                Ins toggles the computer between insert mode and strike-over               Ins                                                         
  475.           mode.  The word <INSERT> appears at the top of the screen when
  476.           INSERT mode is active.
  477.           
  478.                Del deletes the character currently under the cursor.               Del                                                  
  479.           
  480.                F1 function key is the all-purpose HELP key.  It retrieves a               F1 function key                                             
  481.           screenload of helpful hints which are keyed to your position in
  482.           the WAMPUM system.              WAMPUM        
  483.           
  484.                F2-F10 function keys are macros tailorable by the developer               F2-F10 function keys                                       
  485.           to hold any character string desired.  The same is true for the
  486.           SHIFT, ALT, and CONTROL key combinations with the ten function
  487.           keys.  In short, 39 keyboard macros can be designed for each
  488.           WAMPUM application.          WAMPUM             
  489.           
  490.           
  491.           
  492.           2  End-User Functions
  493.           
  494.           2.1   A - ADDing New Records
  495.           
  496.                To add new records to any data base, that file must first be
  497.           selected.  Look at the bottom of the WAMPUM Main Menu to make                                               WAMPUM                  
  498.           sure that the file you want to use is already selected.  If not,
  499.           it can be selected using the F - File Select option in developer
  500.           mode only.
  501.           
  502.                If the file you wish to work with is selected, then you
  503.           should also consider whether there are indexes which you want
  504.           automatically updated as you ADD new records to the file.  If so,
  505.           then these, too, must be selected before you ADD new records. 
  506.           You can determine which indexes are in use by looking at the
  507.           bottom of the Main System Menu screen.  New indexes can be
  508.           created and/or opened using the I - Index Sel/Create option in
  509.           developer mode only.
  510.           
  511.                Once you are working with the correct file and indexes, then
  512.           ADDing records is as simple as highlighting the A - Add a New
  513.           Record option and pressing <ENTER>. Or you may simply type an A
  514.           while the Main System Menu is displayed.
  515.           
  516.                The screen will clear and WAMPUM will display a data entry                                         WAMPUM                          
  517.           screen with all of the fields in the current file.  It will
  518.           indicate the new record number of this entry at the top of the
  519.           form. Type in the data you wish to enter for each field using the
  520.           UP and DOWN cursor keys to move from field to field.  
  521.           
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.                                         - 5 -
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.                If a file has a substantial number of fields, then all of
  537.           the fields may not fit on one data entry screen.  In this case,
  538.           the word *MORE* will appear in the bottom right corner of the
  539.           screen.  When you complete entry of data on the first screen,
  540.           then a second screen with the remaining fields will appear.
  541.           
  542.                Saving a new entry to the file can be accomplished in
  543.           several ways.  Pressing <ENTER> while the cursor is positioned in
  544.           the last field of the last data entry screen will save the
  545.           record.  Completely filling the last field with text also will
  546.           save the record.  Pressing CTRL-W will save the new record
  547.           without displaying the remaining data entry screens if the record
  548.           requires more than one screen for data entry.  Pressing <PgDn> in
  549.           the last data entry screen of a record will also SAVE the record.
  550.           
  551.                Aborting a new entry can be accomplished by pressing the
  552.           <ESC>ape key at any time before any of the SAVE methods outlined
  553.           above occur.  <PgUp> also aborts data entry in ADD mode only.                                                      ________________ 
  554.           
  555.                WAMPUM supports updating of Memo fields in a slightly               WAMPUM                                               
  556.           different way than dBASE III.  If you wish to display or edit a
  557.           memo field, then first move the cursor to that field.  It will be
  558.           displayed on the screen with the field name followed by *MEMO*. 
  559.           Note that memo fields in WAMPUM appear to be logicial fields                                   WAMPUM                             
  560.           which can accept True, False, Yes, or No as entries.  If you wish
  561.           to edit the memo field, simply set the logical field to True or
  562.           Yes by entering a T or Y.  When you complete entry of data for
  563.           this record and execute a SAVE using any of the methods outlined
  564.           above, the Memo editor will display any memo field marked True
  565.           and allow you to update it as desired.  You then can either SAVE
  566.           the updated Memo text by pressing Ctrl-W or ABORT the update and
  567.           leave the Memo text as it was by pressing <ESC>ape.
  568.           
  569.                After you ADD a new entry to the file, WAMPUM will display
  570.           another blank data entry screen thereby allowing you to add
  571.           another entry.  If you do not wish to add another entry, simply
  572.           press the <ESC>ape key to exit to the Main System Menu.
  573.           
  574.           
  575.           2.2   E - EDITing Records
  576.           
  577.                To edit records in any data base, that file must first be
  578.           selected and cannot be empty.  Look at the bottom of the WAMPUM                                                                   WAMPUM
  579.           Main Menu to make sure that the file you want to use is already
  580.           selected.  If not, it can be selected using the F - File Select
  581.           option in developer mode only.
  582.           
  583.                If the file you wish to work with is selected, then you
  584.           should also consider whether there are indexes which you want
  585.           automatically updated as you EDIT records in the file.  If so,
  586.           then these, too, must be selected before you EDIT any records. 
  587.           You can determine which indexes are in use by looking at the
  588.           bottom of the Main System Menu screen.  New indexes can be
  589.           created and/or opened using the I - Index Sel/Create option in                                          I - Index Sel/Create          
  590.           developer mode only.
  591.           
  592.  
  593.  
  594.  
  595.                                         - 6 -
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.                Once you are working with the correct file and indexes, then
  603.           EDITing records is as simple as highlighting the E - Edit Record                                                           E - Edit Record
  604.           option and pressing <ENTER>. Or you may simply type an E while
  605.           the Main System Menu is displayed.
  606.           
  607.                If you are not using indexes in conjunction with the file
  608.           being edited, then you will be prompted for the record number of
  609.           the record you wish to edit.  Simply type in the number desired
  610.           and press the <ENTER> key.  
  611.           
  612.                If you are using one or more indexes in conjunction with the
  613.           file being edited, then the first index displayed at the bottom                                      _____                              
  614.           of the Main System Menu is considered the LEAD INDEX and will be
  615.           used to retrieve records.  If this is not the index you wish to
  616.           use for record retrieval, see the section on Select Utilities.
  617.           
  618.                When editing with an index, you will be prompted to enter a
  619.           value for the field which is currently the LEAD INDEX.  You may
  620.           enter all or part of a key, and WAMPUM will search for a match on                                          WAMPUM                           
  621.           the portion of the key entered.  Note that capitalization is
  622.           critical in finding matches.  If a LASTNAME field in your data
  623.           base contains an entry of SMITH and you enter Smith as the key,
  624.           then WAMPUM will not find the SMITH you are looking for.               WAMPUM                                             
  625.           
  626.                Once you have entered either a record number or the key of
  627.           the record to find, WAMPUM will search for the first match.                               WAMPUM                                  
  628.           Assuming your application allows duplicate keys, there may be
  629.           more than one match on a particular key, e.g. there may be a
  630.           number of Smith's in your data base.  If the first data entry
  631.           screen displayed is not the Smith desired, then <PgDn> through
  632.           the records until the correct record is retrieved. 
  633.           
  634.                If you are using a data base with too many fields to fit on
  635.           one screen, then you may have to <PgDn> several times just to
  636.           move to the next record.  There currently is no key which can be
  637.           pressed to SKIP to the next record without first displaying all
  638.           of the edit screens for the current record.
  639.           
  640.                If you skip past the record desired, you can also back up
  641.           through the file in the order of the current key by pressing the
  642.           <PgUp> key at any time.
  643.           
  644.                Once the record is displayed which you desire to EDIT, move
  645.           to the fields to be edited using the UP and DOWN cursor keys. 
  646.           You may type over the existing data. Or you may delete the
  647.           existing data by pressing CTRL-Y and then enter the new data.  Or
  648.           you may INSERT new data into a field by positioning the cursor
  649.           where you want the insert to begin. Then press the <INS>ert key.
  650.           
  651.                With multi-screen records, you can move forward to the next
  652.           screen by pressing <PgDn>.  You cannot move backward within a
  653.           record by pressing <PgUp>.  <PgUp> will save the record and move
  654.           you to the previous record in the data base.
  655.           
  656.  
  657.  
  658.  
  659.  
  660.  
  661.                                         - 7 -
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.                As was true with ADD mode, you can edit Memo fields by
  669.           marking them True or Yes and then SAVing the record.  Similarly,
  670.           you SAVE edited records in the same way that you do in ADD mode
  671.           except that <PgUp> also executes a SAVE in EDIT mode and moves
  672.           you back one record.  CTRL-W saves the current record and prompts
  673.           you for the next record to find.  <PgDn> saves the current record
  674.           and then displays the next record in the file for editing.
  675.           
  676.                You can abort any EDIT by pressing <ESC>ape before any of
  677.           the SAVE actions outlined above occur.
  678.           
  679.                If you attempt to find a record which does not exist in the
  680.           data base, WAMPUM will beep at you and prompt for another record                     WAMPUM                                               
  681.           to find.  When you have searched for all the records desired,
  682.           press <ESC>ape to exit to the Main System Menu.
  683.           
  684.           
  685.           2.3   D - DISPLAYing Records
  686.           
  687.                To display records in any data base, that file must first be
  688.           selected and cannot be empty.  Look at the bottom of the WAMPUM                                                                   WAMPUM
  689.           Main Menu to make sure that the file you want to use is already
  690.           selected.  If not, it can be selected using the F - File Select                                                          F - File Select
  691.           option in developer mode only.
  692.           
  693.                If the file you wish to work with is selected, then you
  694.           should also consider whether there is an index which you want to
  695.           use for record retrieval.  If so, then this index must be
  696.           selected as the lead index before you DISPLAY any records.  
  697.           
  698.                Once you are working with the correct file and index, then
  699.           DISPLAYing records is as simple as highlighting the D - Display
  700.           Record option and pressing <ENTER>. Or you may simply type a D
  701.           while the Main System Menu is displayed.
  702.           
  703.                If you are not using indexes in conjunction with the file
  704.           being displayed, then you will be prompted for the record number
  705.           of the record you wish to display.  Simply type in the number
  706.           desired and press the <ENTER> key.  
  707.           
  708.                If you are using an index in conjunction with the file being
  709.           displayed, then the first index displayed at the bottom of the                              _____                                     
  710.           Main System Menu is considered the LEAD INDEX and will be used to
  711.           retrieve records.  If this is not the index you wish to use for
  712.           record retrieval, see the section on Select Utilities.
  713.           
  714.                When displaying with an index, you will be prompted to enter
  715.           a value for the field which is currently the LEAD INDEX.  You may
  716.           enter all or part of a key, and WAMPUM will search for a match on                                          WAMPUM                           
  717.           the portion of the key entered.  Note that capitalization is
  718.           critical in finding matches.  If a LASTNAME field in your data
  719.           base contains an entry of SMITH and you enter Smith as the key,
  720.           then WAMPUM will not find the SMITH you are looking for.               WAMPUM                                             
  721.           
  722.  
  723.  
  724.  
  725.  
  726.  
  727.                                         - 8 -
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.                Once you have entered either a record number or the key of
  735.           the record to find, WAMPUM will search for the first match.                               WAMPUM                                  
  736.           Assuming your application allows duplicate keys, there may be
  737.           more than one match on a particular key, e.g. there may be a
  738.           number of Smith's in your data base.  If the first data entry
  739.           screen displayed is not the Smith desired, then <PgDn> through
  740.           the records until the correct record is retrieved. 
  741.           
  742.                If you are using a data base with too many fields to fit on
  743.           one screen, then each time you press <PgDn>, WAMPUM will skip to                                                       WAMPUM             
  744.           the next record.  It will NOT display the subsequent fields of
  745.           the current record as is the case in EDIT mode.  If you wish to
  746.           look at the subsequent fields of the current record, then press
  747.           the <ENTER> key rather than <PgDn>.  In addition, if there are
  748.           MEMO fields in the data base with which you are working, these
  749.           fields will show T if there is an entry in the field.  Otherwise,
  750.           the field will be marked F.  To display the first screen of
  751.           information in any MEMO field, just press <RETURN> rather than
  752.           <PgDn> on the last screen of the display of the standard fields.
  753.           If you need to look at the entire contents of of a MEMO field
  754.           rather than just the first screen, then you must use Edit mode.
  755.           
  756.                If you skip past the record desired, you can also back up
  757.           through the file in the order of the current key by pressing the
  758.           <PgUp> key at any time.
  759.           
  760.                You can abort any DISPLAY by pressing <ESC>ape key.
  761.           
  762.                If you attempt to find a record which does not exist in the
  763.           data base, WAMPUM will beep at you and prompt for another record                     WAMPUM                                               
  764.           to find.  When you have displayed all the records desired, press
  765.           <ESC>ape to exit to the Main System Menu.
  766.           
  767.           
  768.           2.4   M - MARKing a Record for Deletion
  769.           
  770.                To mark records as deleted in any data base, that file must
  771.           first be selected and cannot be empty.  Look at the bottom of
  772.           the WAMPUM Main Menu to make sure that the file you want to use              WAMPUM                                                     
  773.           is already selected.  If not, it can be selected using the F -                                                                     F -
  774.           File Select option in developer mode only.          File Select                               
  775.           
  776.                If the file you wish to work with is selected, then you
  777.           should also consider whether there is an index which you want to
  778.           use for record retrieval.  If so, then this index must be
  779.           selected as the lead index before you attempt to DELETE any
  780.           records.  
  781.           
  782.                Once you are working with the correct file and index, then
  783.           marking records DELETED is as simple as highlighting the M - Mark
  784.           Record *DEL* option and pressing <ENTER>. Or you may simply type
  785.           an M while the Main System Menu is deleteed.
  786.           
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.                                         - 9 -
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.                If you are not using indexes in conjunction with the file,
  801.           then you will be prompted for the record number of the record you
  802.           wish to mark deleted.  Simply type in the number desired and
  803.           press the <ENTER> key.  
  804.           
  805.                If you are using an index in conjunction with the file, then
  806.           the first index displayed at the bottom of the Main System Menu              _____                                                      
  807.           is considered the LEAD INDEX and will be used to retrieve
  808.           records.  If this is not the index you wish to use for record
  809.           retrieval, see the section on Select Utilities.
  810.           
  811.                When using an index, you will be prompted to enter a value
  812.           for the field which is currently the LEAD INDEX.  You may enter
  813.           all or part of a key, and WAMPUM will search for a match on the                                    WAMPUM                               
  814.           portion of the key entered.  Note that capitalization is critical
  815.           in finding matches.  If a LASTNAME field in your data base
  816.           contains an entry of SMITH and you enter Smith as the key, then
  817.           WAMPUM will not find the SMITH you are looking for.          WAMPUM                                             
  818.           
  819.                Once you have entered either a record number or the key of
  820.           the record to find, WAMPUM will search for the first match.                               WAMPUM                                  
  821.           Assuming your application allows duplicate keys, there may be
  822.           more than one match on a particular key, e.g. there may be a
  823.           number of Smith's in your data base.  If the first entry
  824.           displayed is not the Smith desired, then <PgDn> through the
  825.           records until the correct record is retrieved. 
  826.           
  827.                If you are using a data base with too many fields to fit on
  828.           one screen, note that WAMPUM will only display the first screen                                WAMPUM                                   
  829.           of data for each record while in DELETE mode.  
  830.           
  831.                If you skip past the record desired, you can also back up
  832.           through the file in the order of the current key by pressing the
  833.           <PgUp> key at any time.
  834.           
  835.                Once you find the record you wish to mark DELETED, then
  836.           answer the DELETE prompt by entering a T for True or Y for Yes,
  837.           and the record will be marked deleted.
  838.           
  839.                You can abort any search by pressing <ESC>ape key.
  840.           
  841.                If you attempt to find a record which does not exist in the
  842.           data base, WAMPUM will beep at you and prompt for another record                     WAMPUM                                               
  843.           to find.  When you have deleted all the records desired, press
  844.           <ESC>ape to exit to the Main System Menu.
  845.           
  846.                NOTE:  WAMPUM uses the same conventions as dBASE III insofar                      WAMPUM                                               
  847.           as deleted records are concerned.  Deleted records are not really                                             ______________________________
  848.           deleted.  They are simply marked with an asterisk (*) in the          _______                                                     
  849.           first record position which signifies that they will be deleted                                                          _______________
  850.           the next time the file is rebuilt using the X - REBUILD/FileFix                                                      X - REBUILD/FileFix
  851.           option.  At any time before you rebuild the file, any record
  852.           marked as deleted can be restored using U - UN*DEL* records.  The                                                  U - UN*DEL*              
  853.           primary significance of marking records for deletion is that they
  854.           will not ordinarily print out when reports, labels, or form
  855.           letters are produced.  Do NOT mark records as DELETED as a means                                 Do NOT mark records as DELETED as a means
  856.  
  857.  
  858.  
  859.                                        - 10 -
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.           of maintaining a historical data base!  The first time a power          of maintaining a historical data base!                        
  867.           failure occurs, you may be forced to rebuild a file or index
  868.           which automatically and permanently deletes ALL records marked
  869.           for deletion.  A better approach is to add a field to your data
  870.           base which can be used to mark records as inactive or closed.
  871.           
  872.                Sometimes it is desirable to be able to mark a group of
  873.           records as deleted in one pass rather than having to call up each
  874.           record and mark it for deletion individually.  If you start
  875.           WAMPUM with the developer's password, you may do this IF all of          WAMPUM                                                         
  876.           the following conditions are met.
  877.           
  878.                     (1)  The file must be indexed on a character field and
  879.                          that field must be the current (first) index.
  880.           
  881.                     (2)  Record selection criteria must have been specified
  882.                          using S - Select Utilities. It is a very good idea                                                     ______________________
  883.                          to get a listing of records meeting the criteria          _______________________________________________________________
  884.                          BEFORE actually marking the records *DELETED*!          ____________________________________________________________ 
  885.           
  886.                     (3)  Pick the M - Mark Records *DEL* option and when
  887.                          prompted for the value to find, type an asterisk
  888.                          and press <ENTER>.
  889.           
  890.                     (4)  You will be warned one last time that the selected
  891.                          group of records are about to be marked *DELETED*.
  892.                          Type Y to proceed.
  893.           
  894.           
  895.           2.5   U - UNDELETing a Record
  896.           
  897.                To undelete records marked as deleted in any data base, that
  898.           file must first be selected and cannot be empty.  Look at the
  899.           bottom of the WAMPUM Main Menu to make sure that the file you                        WAMPUM                                         
  900.           want to use is already selected.  If not, it can be selected
  901.           using the F - File Select option in developer mode only.                    F - File Select                               
  902.           
  903.                If the file you wish to work with is selected, then you
  904.           should also consider whether there is an index which you want to
  905.           use for record retrieval.  If so, then this index must be
  906.           selected as the lead index before you attempt to UNDELETE any
  907.           records.  
  908.           
  909.                Once you are working with the correct file and index, then
  910.           marking records UNDELETED is as simple as highlighting the U -                                                                     U -
  911.           UN*DEL* Records option and pressing <ENTER>. Or you may simply          UN*DEL*                                                       
  912.           type a U while the Main System Menu is deleteed.
  913.           
  914.                If you are not using indexes in conjunction with the file,
  915.           then you will be prompted for the record number of the record you
  916.           wish to undelete.  Simply type in the number desired and press
  917.           the <ENTER> key.  
  918.           
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.                                        - 11 -
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.                If you are using an index in conjunction with the file, then
  933.           the first index displayed at the bottom of the Main System Menu              _____                                                      
  934.           is considered the LEAD INDEX and will be used to retrieve
  935.           records.  If this is not the index you wish to use for record
  936.           retrieval, see the section on Select Utilities.
  937.           
  938.                When using an index, you will be prompted to enter a value
  939.           for the field which is currently the LEAD INDEX.  You may enter
  940.           all or part of a key, and WAMPUM will search for a match on the                                    WAMPUM                               
  941.           portion of the key entered.  Note that capitalization is critical
  942.           in finding matches.  If a LASTNAME field in your data base
  943.           contains an entry of SMITH and you enter Smith as the key, then
  944.           WAMPUM will not find the SMITH you are looking for.          WAMPUM                                             
  945.           
  946.                Once you have entered either a record number or the key of
  947.           the record to find, WAMPUM will search for the first match.                               WAMPUM                                  
  948.           Assuming your application allows duplicate keys, there may be
  949.           more than one match on a particular key, e.g. there may be a
  950.           number of Smith's in your data base.  If the first entry
  951.           displayed is not the Smith desired, then <PgDn> through the
  952.           records until the correct record is retrieved. 
  953.           
  954.                If you are using a data base with too many fields to fit on
  955.           one screen, note that WAMPUM will only display the first screen                                WAMPUM                                   
  956.           of data for each record while in UNDELETE mode.  
  957.           
  958.                If you skip past the record desired, you can also back up
  959.           through the file in the order of the current key by pressing the
  960.           <PgUp> key at any time.
  961.           
  962.                Once you find the record you wish to UNDELETE, then answer
  963.           the restore prompt by entering a T for True or Y for Yes, and the
  964.           record will be restored to the data base as an active record.
  965.           
  966.                You can abort any search by pressing <ESC>ape key.
  967.           
  968.                If you attempt to find a record which does not exist in the
  969.           data base, WAMPUM will beep at you and prompt for another record                     WAMPUM                                               
  970.           to find.  When you have undeleted all the records desired, press
  971.           <ESC>ape to exit to the Main System Menu.
  972.           
  973.                NOTE:  WAMPUM uses the same conventions as dBASE III insofar                      WAMPUM                                               
  974.           as deleted records are concerned.  Deleted records are not really
  975.           deleted.  They are simply marked with an asterisk (*) in the
  976.           first record position which signifies that they will be deleted                                                          _______________
  977.           the next time the file is rebuilt using the X - REBUILD/FileFix                                                      X - REBUILD/FileFix
  978.           option.  At any time before you rebuild the file, any record
  979.           marked as deleted can be restored using U - UN*DEL* records.  The                                                  U - UN*DEL*              
  980.           down side of this is that once the X option has been run on a
  981.           file, you can no longer UNDELETE records marked for deletion
  982.           since they have been permanently deleted from the data base.
  983.           
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.                                        - 12 -
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.                Sometimes it is desirable to be able to undelete a group of
  999.           records in one pass rather than having to call up each record and
  1000.           restore it individually. If you start WAMPUM with the developer's                                                WAMPUM                     
  1001.           password, you may do this IF all of the following conditions are
  1002.           met.
  1003.           
  1004.                     (1)  The file must be indexed on a character field and
  1005.                          that field must be the current (first) index.
  1006.           
  1007.                     (2)  Record selection criteria must have been specified
  1008.                          using S - Select Utilities. It is a very good idea                                                     ______________________
  1009.                          to get a listing of records meeting the criteria          _______________________________________________________________
  1010.                          BEFORE actually restoring the records!          ____________________________________________________ 
  1011.           
  1012.                     (3)  Pick the U - UN*DEL* Records option and when
  1013.                          prompted for the value to find, type an asterisk
  1014.                          and press <ENTER>.
  1015.           
  1016.                     (4)  You will be warned one last time that the selected
  1017.                          group of records are about to be restored. Type Y
  1018.                          to proceed.
  1019.           
  1020.           
  1021.           2.6   P - PRINTing Records
  1022.           
  1023.                To print records in any data base, that file must first be
  1024.           selected and cannot be empty.  Look at the bottom of the WAMPUM                                                                   WAMPUM
  1025.           Main Menu to make sure that the file you want to use is already
  1026.           selected.  If not, it can be selected using the F - File Select                                                          F - File Select
  1027.           option in developer mode only.  
  1028.           
  1029.                Also make certain that WAMPUM is configured to match the                                      WAMPUM                           
  1030.           printer you currently are using.  This can be changed by
  1031.           selecting the # - PRINTER Config option in developer mode only.                        # - PRINTER Config                               
  1032.           
  1033.                If the file you wish to work with is selected, then you
  1034.           should also consider whether there is an index which you want to
  1035.           use for record retrieval.  If so, then this index must be
  1036.           selected as the lead index before you PRINT any records.  
  1037.           
  1038.                Once you are working with the correct file and index, then
  1039.           PRINTing records is as simple as highlighting the P - Print                                                            P - Print
  1040.           Record(s) option and pressing <ENTER>. Or you may simply type a P          Record(s)                                                        
  1041.           while the Main System Menu is displayed.
  1042.           
  1043.                If you are not using indexes in conjunction with the file,
  1044.           then you will be prompted for the record number of the record you
  1045.           wish to retrieve.  Simply type in the number desired and press
  1046.           the <ENTER> key.  
  1047.           
  1048.                If you are using an index in conjunction with the file, then
  1049.           the first index displayed at the bottom of the Main System Menu              _____                                                      
  1050.           is considered the LEAD INDEX and will be used to retrieve
  1051.           records.  If this is not the index you wish to use for record
  1052.           retrieval, see the section on Select Utilities.
  1053.           
  1054.  
  1055.  
  1056.  
  1057.                                        - 13 -
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.                When printing records with index retrieval, you will be
  1065.           prompted to enter a value for the field which is currently the
  1066.           LEAD INDEX.  You may enter all or part of a key, and WAMPUM will                                                               WAMPUM     
  1067.           search for a match on the portion of the key entered.  Note that
  1068.           capitalization is critical in finding matches.  If a LASTNAME
  1069.           field in your data base contains an entry of SMITH and you enter
  1070.           Smith as the key, then WAMPUM will not find the SMITH you are                                 WAMPUM                                
  1071.           looking for.
  1072.           
  1073.                Once you have entered either a record number or the key of
  1074.           the record to find, WAMPUM will search for the first match.                               WAMPUM                                  
  1075.           Assuming your application allows duplicate keys, there may be
  1076.           more than one match on a particular key, e.g. there may be a
  1077.           number of Smith's in your data base.  If the screen displayed is
  1078.           not the Smith desired, then <PgDn> through the records until the
  1079.           correct record is retrieved. 
  1080.           
  1081.                If you are using a data base with too many fields to fit on
  1082.           one screen, then only as many fields as will fit on a single
  1083.           screen will be displayed.  To get a print out of the record
  1084.           displayed, answer the Print Record? prompt by typing a T or Y.                                 _____________                            
  1085.           Make certain that your printer is turned ON and is ON LINE.
  1086.           
  1087.                If your database contains MEMO fields, the contents these
  1088.           fields is printed after the standard fields are completed in
  1089.           PRINT mode.  
  1090.           
  1091.                If you skip past the record desired, you can also back up
  1092.           through the file in the order of the current key by pressing the
  1093.           <PgUp> key at any time.
  1094.           
  1095.                You can abort a PRINT records session by pressing the
  1096.           <ESC>ape key.
  1097.           
  1098.                If you attempt to find a record which does not exist in the
  1099.           data base, WAMPUM will beep at you and prompt for another record                     WAMPUM                                               
  1100.           to find.  When you have printed all the records desired, press
  1101.           <ESC>ape to exit to the Main System Menu.
  1102.           
  1103.           
  1104.           2.7   X - REBUILD/FileFix
  1105.           
  1106.                Computers are very temperamental when it comes to
  1107.           electricity.  Power fluctuations will cause all sorts of
  1108.           undesired results when working with any data base.  WAMPUM
  1109.           provides the X- REBUILD/FileFix option as a tool to assist in                       X- REBUILD/FileFix                              
  1110.           rebuilding data bases and indexes which typically have been
  1111.           corrupted by power problems.  If you are having to use this
  1112.           option frequently, then you should seriously consider an
  1113.           uninterruptible power supply if you value your data!
  1114.           
  1115.                To rebuild any file and its associated indexes, make certain
  1116.           that they have been selected and are displayed at the bottom of
  1117.           the Main System Menu.  Then select the REBUILD/FileFix option by                                                 REBUILD/FileFix          
  1118.           typing an X or highlighting the option and pressing <ENTER>.                    X                                                 
  1119.           
  1120.  
  1121.  
  1122.  
  1123.                                        - 14 -
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.                You will be warned that the file and its indexes, if any,
  1131.           are about to be rebuilt.  You can <ESC>ape out of the option, or
  1132.           press <ENTER> to proceed.
  1133.           
  1134.                As noted previously, this option automatically and                                    _____________________________
  1135.           permanently DELETES any records marked for deletion.  Make          ___________________________________________________       
  1136.           certain that you have UNDELETED any records you wish to preserve
  1137.           before executing the X option!          ______                        
  1138.           
  1139.           
  1140.           2.8   S - SELECT Utilities
  1141.           
  1142.           2.8.1  Overview
  1143.           
  1144.                The Select Utilities option in WAMPUM provides end-user                                              WAMPUM                  
  1145.           access to the two most critical elements in extracting data from
  1146.           a data base: record selection and sorting.  Sorting in WAMPUM is                       ________________     _______                                                                                        WAMPUM                          ________________     _______                       
  1147.           handled through the use of indexes.  Thus, the Select Utilities
  1148.           option also provides the means for setting the primary index for
  1149.           record retrieval purposes.  
  1150.           
  1151.                Four other dBASE III functions are provided through the
  1152.           Select Utilities option: LIST FILE CONTENTS, to generate quick                                   __________________                   
  1153.           report listings with up to 9 fields; CHANGE DATA ENTRY MENUS,                                               _______________________ 
  1154.           which allows a user to select from up to 10 different data entry
  1155.           menus; and BROWSE MODE, to scan through a group of records; and                     ___________                                         
  1156.           LIST STRUCTURE, which displays or prints a listing of the field          ______________                                                 
  1157.           structure of the data base file in use.  
  1158.           
  1159.                No User's Guide can do justice to the topic of Boolean logic
  1160.           which is record selection in both WAMPUM and dBASE III.  There                                            WAMPUM                      
  1161.           are numerous books including a number of dBASE III primers which
  1162.           cover record selection in much more detail than what is addressed
  1163.           here.  Many are available without charge through your public
  1164.           library.  For anyone to get the most out of WAMPUM, you must                                                      WAMPUM          
  1165.           master record selection since it is the critical element in
  1166.           identifying which records should and should not be extracted in
  1167.           reports, labels, and form letters.
  1168.           
  1169.           
  1170.           2.8.2  Record Selection Criteria
  1171.           
  1172.                Record Selection, which is the dBASE implementation of
  1173.           Boolean logic, is the process by which you tell the computer
  1174.           which records should and should not be extracted in producing
  1175.           reports, labels, and form letters.
  1176.           
  1177.                With the exception of logical fields, the syntax for record
  1178.           selection typically is FIELDNAME relational operator VALUE.  The                                 ___________________________________      
  1179.           syntax for logical fields is simpler.  Assuming a logical field
  1180.           exists in your data base called MARRIED, if you want to find all
  1181.           the records in which the MARRIED field is True, the Boolean
  1182.           expression is simply the field name itself: MARRIED.  If you want                                                      _______              
  1183.           to find all those in which the MARRIED field is False, the
  1184.           correct expression is .NOT. MARRIED.  Any record selection                                _____________                       
  1185.           expression can be linked to another expression with one of two
  1186.  
  1187.  
  1188.  
  1189.                                        - 15 -
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.           connectors: .AND. or .OR.  The other cardinal rule is that                      ______   ____                                 
  1197.           expressions on both sides of the relational operator must be of
  1198.           the same type.  Thus, if the field is a character field then the
  1199.           value must be a character string.  If the field is a date field,
  1200.           then the value must be a date.  Finally, unlike dBASE III, memo
  1201.           fields can be searched for matches using record selection and                 ___                                                   
  1202.           should be treated as if they were character fields, i.e. enclose
  1203.           the search values in quotes just as you would a charcter string!
  1204.           
  1205.                Whenever you run a report, label, or form letter, WAMPUM                                                                 WAMPUM
  1206.           always checks to see if Record Selection Criteria are in effect. 
  1207.           If so, it scans the data base for records whose field entries
  1208.           are TRUE when evaluated against the complete Record Selection              ____                            ________                 
  1209.           Criteria then in effect.
  1210.           
  1211.                WAMPUM currently supports eight relational operators:               WAMPUM                                               
  1212.           
  1213.                       OPERATOR     MEANING                              ________     _______        
  1214.           
  1215.                           =        Equals; matches; begins with.
  1216.                          <>        Not equals.
  1217.                           >        Greater than; more than.
  1218.                          >=        Greater than or equal; at least.
  1219.                           <        Less than.
  1220.                          <=        Less than or equal; at most.
  1221.                           $        Is contained in.
  1222.                     .NOT. $        Is not contained in.
  1223.           
  1224.                The best way to master record selection is by reviewing some
  1225.           examples and finding one that closely matches what you want to
  1226.           do.  For this purpose, let us assume that you are working with a
  1227.           data base with the following file structure:
  1228.           
  1229.                FIELD NAME     FIELD TYPE     FIELD LEN      FIELD DEC               __________     __________     _________      _________
  1230.           
  1231.                LASTNAME           C             20              0
  1232.                ACCTNO             N              5              0
  1233.                ENTRYDT            D              8              0
  1234.                MARRIED            L              1              0
  1235.                COMMENTS           M             10              0
  1236.           
  1237.                Now let us assume that there are three records in the file
  1238.           with the following values:
  1239.           
  1240.                FIELD NAME     RECORD #1      RECORD #2      RECORD #3               __________     _________      _________      _________
  1241.           
  1242.                LASTNAME       Mundy          Johns          Johnston
  1243.                ACCTNO         12345          1234           123
  1244.                ENTRYDT        10/01/85       10/31/85       11/01/85
  1245.                MARRIED        .T.            .F.            .F.
  1246.                COMMENTS       None           None           None
  1247.           
  1248.                What follows are a number of examples showing the correct
  1249.           record selection syntax, what the expression means in plain
  1250.           English, and which records would be selected by the expression.
  1251.           
  1252.  
  1253.  
  1254.  
  1255.                                        - 16 -
  1256.  
  1257.  
  1258.  
  1259.  
  1260.  
  1261.  
  1262.           
  1263.           Criteria: LAST NAME = Johns          ________  _________________
  1264.           English:  Find all entries where the last name is Johns.          _______                                                 
  1265.           Selected: No records.          ________             
  1266.           Comments: Not only will no records be selected but WAMPUM will          ________                                                                                                                   WAMPUM               ________                                                      
  1267.                     display a System Error forcing termination of the
  1268.                     program by typing Q.  FIELD NAMES are words of art
  1269.                     which must be spelled exactly as they appear in the
  1270.                     data base structure.  While LAST NAME is fine for
  1271.                     English, WAMPUM doesn't know LAST NAME from the MOON.
  1272.                     The correct field name is LASTNAME with no spaces!                                                            __        
  1273.                     Since LASTNAME is a character field, the value also
  1274.                     must be a character string which means it must be
  1275.                     enclosed in quotation marks.  Either error would have
  1276.                     triggered a System Error.  Currently, there is no way
  1277.                     to check for correct syntax before you actually run a
  1278.                     report, label, or form letter.  Then it's too late!
  1279.           
  1280.           Criteria: LASTNAME="Johns"          _________ ________________
  1281.           English:  Find all entries where the LASTNAME begins with Johns.          ________                                                        
  1282.           Selected: Records 2 and 3.          _________                 
  1283.           Comments: Note that EQUALS is not pure equivalency in WAMPUM, but          _________                                                                                                                        WAMPUM               _________                                                        
  1284.                     more accurately means "begins with."  If you want exact
  1285.                     equivalence, fill out the field with enough spaces to
  1286.                     assure that the match will force equivalence, e.g.
  1287.                     LASTNAME="Johns  " would select only Record 2.
  1288.           
  1289.           Criteria: LASTNAME="Johns" .AND. ACCTNO=123          ________  _________________________________
  1290.           English:  Find all entries where LASTNAME begins with Johns AND          ________                                                       
  1291.                     the account number is 123.
  1292.           Selected: Record 3.          _________          
  1293.           Comments: For every rule, there is an exception. Equals means          _________                                                    
  1294.                     exactly equals with numeric fields.  Here the account
  1295.                     number is numeric while the LASTNAME field is not.  
  1296.                     Note that BOTH expressions must be true for a record
  1297.                     to qualify since the expressions are joined with .AND.
  1298.                     Note also that the character string value must be in
  1299.                     quotes to match the character field LASTNAME while the
  1300.                     numeric value is NOT in quotes to match the numeric
  1301.                     field ACCTNO.
  1302.           
  1303.           Criteria: LASTNAME="Mundy" .AND. LASTNAME="Johns"          ________  _______________________________________
  1304.           English:  Find all entries where LASTNAME is Mundy and Johns.          ________                                                     
  1305.           Selected: No records.          ________             
  1306.           Comments: Pure English will sometimes get you into trouble.          ________                                                   
  1307.                     A common beginner's mistake is to mix up .AND. and
  1308.                     .OR.  Remember: .AND. means BOTH expressions must
  1309.                     be True.  .OR. means if EITHER is True.  Here, no
  1310.                     one has a LASTNAME of Mundy AND Johns.  All entries
  1311.                     have a LASTNAME of Mundy OR Johns.
  1312.           
  1313.           Criteria: MARRIED .OR. LASTNAME="Johns  "          ________  _______________________________
  1314.           English:  Find all entries where person is married or LASTNAME          ________                                                      
  1315.                     is equal to Johns.
  1316.           Selected: Records 1 and 2.          _________                 
  1317.  
  1318.  
  1319.  
  1320.  
  1321.                                        - 17 -
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.           Comments: When expressions are joined by .OR. then if either          ________                                                    
  1329.                     expression is true, the record qualifies.  Thus, record
  1330.                     1 qualified because the MARRIED field is True and
  1331.                     record 2 qualified because of the LASTNAME match.
  1332.           
  1333.           Criteria: .NOT. MARRIED .AND. ENTRYDT>=CTOD("10/31/86")          _______________________________________________________
  1334.           English:  Find all the unmarried people with an entry date of at          _______                                                         
  1335.                     least October 31, 1986.
  1336.           Selected: Records 2 and 3.          ________                  
  1337.           Comments: The connecter is .AND. so both expressions must be          ________                                                    
  1338.                     true. Since the MARRIED field is false in both record
  1339.                     2 and 3 and since the ENTRYDT is at least 10/31/86,
  1340.                     they both would be output.  Note that the VALUE type
  1341.                     must match the field type with the DATE field.  There
  1342.                     is no direct way to enter a date in dBASE.  Thus, you
  1343.                     must enter the character string "10/31/86" and then
  1344.                     convert it to a DATE with the character-to-date
  1345.                     function: CTOD().
  1346.           
  1347.           Criteria: ENTRYDT>=CTOD("10/01/86").AND.ENTRYDT<=CTOD("10/31/86")          ________  _______________________________________________________
  1348.           English:  Find all of the October, 1986 entries.          _______                                         
  1349.           Selected: Records 1 and 2.          ________                  
  1350.           Comments: Here we are using a range of dates to select a month's          ________                                                        
  1351.                     worth of entries.  Note that spacing between text is
  1352.                     optional.  Both expressions must be true for a match.
  1353.                     DATE fields must have DATE values.  CTOD() does it.
  1354.           
  1355.           Criteria: "This is a test"$COMMENTS          ________  _________________        
  1356.           English:  Find every record in which the text "This is a test"          _______                                                       
  1357.                     appears in the COMMENTS memo field.
  1358.           Selected: Don't know.  See below.          ________                         
  1359.           Comments: The $ operator is one of Boolean logic's most powerful          ________                                                        
  1360.                     tools since it automatically searches TEXT STRINGS for
  1361.                     a match anywhere in the string.  It can be especially
  1362.                     helpful for use with fields in which a word may appear
  1363.                     at any place in a lengthy string of text.  For purposes
  1364.                     of searches, MEMO fields are treated by WAMPUM as text                                                            WAMPUM        
  1365.                     strings.  Thus, you can search ANY memo field with the
  1366.                     logic outlined above.  To negate the expression, i.e.
  1367.                     "This is a test" is NOT contained in the MEMO field,
  1368.                     the correct syntax is .NOT."This is a test"$COMMENTS.                                          ______________________________ 
  1369.                     In this case, we didn't specify the contents of the 
  1370.                     MEMO field in developing the example.  Thus, there is
  1371.                     no way to tell if the text was found or not.
  1372.           
  1373.           
  1374.                For those experiencing problems in mastering dBASE Boolean
  1375.           syntax but who have mastered Boolean selection theory, WAMPUM                 ______________________________________________                                                                         WAMPUM                 ______________________________________________        
  1376.           provides a helping hand: SELECT ASSIST.  By entering an asterisk                                   SELECT ASSIST                          
  1377.           (*) as the first character in the Record Selection field or
  1378.           whenever you pick the LIST FILE CONTENTS option when no selection
  1379.           criteria are in effect, SELECT ASSIST springs in to action.                                    SELECT ASSIST                        
  1380.           
  1381.                SELECT ASSIST is a menu-driven record selection tool similar               SELECT ASSIST                                               
  1382.           to that found in many data base system including dBASE III Plus. 
  1383.           It permits a user to enter up to 10 record selection criteria
  1384.  
  1385.  
  1386.  
  1387.                                        - 18 -
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.           using a 4-step menu process.  As indicated earlier, it cannot
  1395.           replace the human brain in figuring out which records you want to
  1396.           work with, but it can help you master dBASE selection syntax.
  1397.           
  1398.                                    FIELDNAME SELECTION                                   FIELDNAME SELECTION
  1399.           
  1400.                Once SELECT ASSIST is started, it will display a screen with                    SELECT ASSIST                                          
  1401.           the name of the first field in the active data base.  Step 1 is
  1402.           to identify the field involved in making your selection of
  1403.           records.  If you don't remember the field names in the data base,
  1404.           simply press the <Dn> and <Up> cursor keys to "thumb through" the
  1405.           field names.  When you find the one you want, press <ENTER>.  
  1406.           
  1407.                If you already know the field name and there are a lot of
  1408.           them in your database, you may find it more convenient just to
  1409.           type several of the beginning characters of the field name. 
  1410.           SELECT ASSIST will begin searching for a matching field name as          SELECT ASSIST                                                  
  1411.           soon as you type a letter between A and Z.  If it finds no match,
  1412.           it will beep and redisplay the first field name in the data base.
  1413.           Since several fields obviously can have the same beginning
  1414.           letters, you may have to type several letters of the field name
  1415.           for SELECT ASSIST to find the field you're looking for.  Once the              SELECT ASSIST                                                
  1416.           field name appears that you want, press <ENTER> to continue.
  1417.           
  1418.                It should be noted that once you have pressed <ENTER>, it is               ____________________________________________________________
  1419.           too late to change your mind about any previous selection you          _____________________________________________________________
  1420.           have made.  If you have made a mistake, your only option is to          ______________________________________________________________
  1421.           start over by pressing <ESC>ape to exit.  HINT: Be sure of your          _______________________________________________________________
  1422.           choice before you press the <ENTER> key!  If you do ESCape from          ________________________________________                       
  1423.           SELECT ASSIST, you also will need to ESCape from the LIST FIELDS
  1424.           screen if you picked LIST FILE CONTENTS.  Otherwise, your list
  1425.           will include data on all records in your data base.
  1426.           
  1427.                               RELATIONAL OPERATOR SELECTION                              RELATIONAL OPERATOR SELECTION
  1428.           
  1429.                After selecting a field name, you then must choose a
  1430.           RELATIONAL OPERATOR telling WAMPUM what sort of comparison you                                      WAMPUM                            
  1431.           wish to make against this field.  The default is EQUALS.  You may
  1432.           "thumb through" the choices by pressing the <Dn> or <Up> cursor
  1433.           keys.  Depending upon the field type of the field name specified,
  1434.           the relational operator selections will vary.  Display the
  1435.           operator desired, then press <ENTER> to proceed.
  1436.           
  1437.                                    VALUE SPECIFICATION                                   VALUE SPECIFICATION
  1438.           
  1439.                Once you have specified the relational operator, you next                                                                        
  1440.           must tell SELECT ASSIST what VALUE for this field you want to                    SELECT ASSIST                                      
  1441.           find.  Again, depending upon the field type, your options in
  1442.           specifying a value may be limited.  For example, if the field is
  1443.           a date field, the VALUE must also be a date.  With a logical
  1444.           field, there is no value specification.  Character fields require
  1445.           the entry of text without surrounding quotation marks.  Press the                            _______                                        
  1446.           <ENTER> key once you have specified the value desired.
  1447.           
  1448.           
  1449.           
  1450.  
  1451.  
  1452.  
  1453.                                        - 19 -
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.                                    CONNECTOR SELECTION                                   CONNECTOR SELECTION
  1461.           
  1462.                Connector selection allows you to indicate how this
  1463.           selection should be linked to the next selection, if any.  The
  1464.           choices are listed by using the <Dn> and <Up> cursor keys. You
  1465.           may choose AND, OR, or NO CONNECTOR.  If you choose NO CONNEC-                     AND  OR     NO CONNECTOR                           
  1466.           TOR, SELECT ASSIST assumes you are finished.  Specifying either
  1467.           of the other choices by pressing <ENTER> takes you to the next
  1468.           line to enter a second selection criteria beginning with another
  1469.           field name.  
  1470.           
  1471.                Once you have entered all of the selection criteria desired,
  1472.           press the <PgDn> key in the CONNECTOR SELECTION field to tell
  1473.           SELECT ASSIST you are finished.  You may also specify NO CONNEC-
  1474.           TOR and press <ENTER> which has the same effect.  If you
  1475.           accidentally press <ENTER> to move to the next line with a
  1476.           connector of AND or OR, you may still end processing of SELECT
  1477.           ASSIST by pressing the <PgDn> key in the FIELD NAME position.  In
  1478.           this case, SELECT ASSIST assumes you wanted to use only those
  1479.           selection criteria on the lines above the current line.
  1480.           
  1481.           
  1482.           2.8.3  Listing File Contents
  1483.           
  1484.                Many times there is a need to produce a "quick and dirty"
  1485.           report which lists certain fields of information on a certain
  1486.           group of records in the data base.  The List File Contents option                                                  __________________       
  1487.           in conjunction with a previously specified Record Selection                                                     ________________
  1488.           Criteria satisfies this need by simulating the dBASE LIST          _________                                                
  1489.           command.  If the List File Contents option is marked True, WAMPUM                           ___________________                             
  1490.           first will display the SELECT ASSISTANT previously described if
  1491.           no record selection criteria are in effect.  After specifying
  1492.           record selection criteria, WAMPUM then will display a screen                                     WAMPUM                           
  1493.           asking the user to identify the fields to be listed.  The user
  1494.           should type a number between 1 and 9 beside each field which
  1495.           should be listed.  No number can be used twice!  If a MEMO field
  1496.           is to be included in the listing, it should be the field with
  1497.           either the highest or lowest number to assure that it prints in
  1498.           either the far right column or the far left column of the
  1499.           listing.  Pressing <PgDn> moves the user to a screen which
  1500.           prompts for (1) whether to print the listing, (2) whether to
  1501.           output all records (i.e., override record selection criteria then
  1502.           in effect), and (3) whether to output records marked for
  1503.           deletion.  When these prompts are answered, WAMPUM will produce                                                      WAMPUM             
  1504.           the list with field headings either on the screen or on the
  1505.           printer.  If the total width of the fields specified for the
  1506.           listing exceeds the screen width or current printer width, the
  1507.           listing will be wrapped to the next line.  At the end of the
  1508.           listing will be a summary of the record selection criteria then
  1509.           in effect.
  1510.           
  1511.           
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.                                        - 20 -
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.           2.8.4  Changing Current Data Entry Menu
  1527.           
  1528.                In addition to its standard data entry menu, WAMPUM provides                                                            WAMPUM         
  1529.           the capacity for creating up to 9 customized data entry menus to
  1530.           match different data entry stages for any given application.  The
  1531.           number of menus available to the end-user are specified by the
  1532.           developer in creating an application.
  1533.           
  1534.                You may change data entry menus at any time by following
  1535.           these simple steps.  Access the S - Select Utilities screen from                                          S - Select Utilities            
  1536.           the Main System Menu.  Change the Change Current Menu field to T                                            ____________________          
  1537.           and press <PgDn>.  A listing of the available menus will be
  1538.           displayed.  Simply type the number corresponding to the menu you
  1539.           want to use.  You then will be returned to the Main System Menu. 
  1540.           Until you change menus again, this new data entry menu will
  1541.           appear whenever you Add, Edit, or Display Records.
  1542.           
  1543.           
  1544.           2.8.5  Picking the Lead Index
  1545.           
  1546.                Files can only be accessed or output by one index at a time
  1547.           even though WAMPUM automatically updates up to 5 indexes as you                      WAMPUM                                             
  1548.           add and modify entries in the file.  
  1549.           
  1550.                The LEAD INDEX is always the FIRST index displayed at the
  1551.           bottom of the WAMPUM Main System Menu.  If you want to retrieve                        WAMPUM                                           
  1552.           records in some order other than what the current LEAD INDEX
  1553.           would provide, then you can change the LEAD INDEX.
  1554.           
  1555.                Similarly, all output from WAMPUM including REPORTS, LABELS,                                          WAMPUM                           
  1556.           and FORM LETTERS is produced in the order of the LEAD INDEX.  If
  1557.           you want the output ordered differently, then you must change the
  1558.           LEAD INDEX before generating the report, labels, or form letters                     ______                                               
  1559.           unless you are using the W - WAMPUM PreFormat option. 
  1560.           
  1561.                To change the LEAD INDEX, select the S - Select Utilities
  1562.           option from the Main System Menu by typing an S or highlighting
  1563.           the option and pressing the <ENTER> key.  Enter any selection
  1564.           criteria desired then press <ENTER> to move to the field which
  1565.           asks Change Lead Index.  Change the value of the field from False               _________________                                           
  1566.           to True by typing either a T or Y.  Assuming you have more than
  1567.           one index in use, a list of available indexes then will be
  1568.           displayed.  Just enter the number of the one which you want to
  1569.           designate as the LEAD INDEX.
  1570.           
  1571.                Always remember to check the LEAD INDEX before producing
  1572.           output from your file to assure that it is set as you desire.
  1573.           
  1574.           
  1575.           2.8.6  Setting Browse Mode ON
  1576.           
  1577.                WAMPUM implements dBASE III's powerful BROWSE command in a               WAMPUM                                                    
  1578.           slightly different way.  By setting BROWSE Mode ON by specifying
  1579.           T or Y to the prompt in the Select Utilities screen, WAMPUM uses
  1580.           a two-step process for EDITing, DISPLAYing, DELETing, and
  1581.           UNDELETing records.
  1582.  
  1583.  
  1584.  
  1585.                                        - 21 -
  1586.  
  1587.  
  1588.  
  1589.  
  1590.  
  1591.  
  1592.           
  1593.                The user first will be prompted for the key field value to
  1594.           find.  Then, instead of the usual data entry display, the user
  1595.           first will be presented with a table of the first twenty records
  1596.           in key order beginning with the first matching key value.  WAMPUM                                                                     WAMPUM
  1597.           displays as many fields from the data base for each record as
  1598.           will fit on a single line of the screen.
  1599.           
  1600.                Within this display, the user can move UP and DOWN through
  1601.           the records with the UP and DOWN cursor keys.  The user can
  1602.           request the next twenty records beginning with the last record
  1603.           currently displayed by pressing the <PgDn> key.  Browse also
  1604.           permits the user to move UP a single record by pressing <PgUp>. 
  1605.           If the record is found for which you are searching, then simply
  1606.           highlight that option and press the <ENTER> key.  This then          highlight                                                  
  1607.           triggers the usual WAMPUM data entry screen.  If no record is                             WAMPUM                                    
  1608.           found for which you desire to move to the full data entry screen,
  1609.           then two choices are available.  Pressing <ESC> will ABORT the
  1610.           BROWSE session and return you to the Main System Menu.  Pressing
  1611.           the <SPACE BAR> or any other key not previously mentioned will
  1612.           allow you to enter a new record key value and commence another
  1613.           search.
  1614.           
  1615.                BROWSE mode is particularly useful in situations in which
  1616.           there may be multiple entries with a similar key value, i.e. a
  1617.           number of entries with a LASTNAME of Smith.  BROWSE permits you
  1618.           to examine the partial contents of 20 records at a time in order
  1619.           to identify the exact record with which to work.  Note that you
  1620.           cannot actually change any data while in the BROWSE mode.  You
  1621.           must move to the actual data entry screen to do this.
  1622.           
  1623.                If a record has been marked for deletion, that entry will
  1624.           show an asterisk (*) as the first character of the line. 
  1625.           Otherwise, the first character position is always blank.
  1626.           
  1627.                Once the full data entry mode has been triggered by pressing
  1628.           the <ENTER> key, the user still has the ability to move through
  1629.           the data base with either <PgDn> or <PgUp>.  At this juncture, it
  1630.           is necessary to return to the Main System Menu before the BROWSE
  1631.           mode is reinitiated.
  1632.           
  1633.           
  1634.           2.8.7  Listing the File Structure
  1635.           
  1636.                Particularly in developing reports, labels, and form
  1637.           letters, it is helpful to have a listing of the structure of the
  1638.           data base file in use.  The last option on the Select Utilities
  1639.           screen permits a user to request this listing.  If the prompt is
  1640.           answered with Y or T, then WAMPUM will ask whether you want the                                     WAMPUM                              
  1641.           listing printed as opposed to displayed.  Typing T or Y at the
  1642.           Printed? option will provide a printed listing.  Pressing <ESC>
  1643.           will abort the listing entirely.  Pressing <PgDn> or <ENTER> will
  1644.           display the file structure on the screen.
  1645.           
  1646.           
  1647.  
  1648.  
  1649.  
  1650.  
  1651.                                        - 22 -
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.           2.9   R - REPORTS Generation
  1659.           
  1660.                The R - Reports option allows you to run existing dBASE III
  1661.           report formats and create new ones.  Creation of new reports is
  1662.           covered in the Developer's section of this User's Guide.
  1663.           
  1664.                Before selecting the Reports option, you already should have
  1665.           used the Select Utilities option to enter Record Selection
  1666.           Criteria and to specify the Lead Index for report output.  If you
  1667.           did not do so, simply press <ESC>ape to return to the Main Menu.
  1668.           
  1669.                When you select the Reports option, a listing of report
  1670.           forms in the default directory will be displayed.  You then are
  1671.           prompted to enter the name of the report form you wish to run. 
  1672.           Type in the file name EXACTLY as it appears in the directory
  1673.           listing.  Do NOT include the .FRM file extension.
  1674.           
  1675.                There also is a field which allows you to specify the
  1676.           PRINTER FONT to be used if the report is to be printed.  If a
  1677.           report is to be printed on regular 8-1/2 x 11 inch paper using 10
  1678.           pitch type, then NO font number needs to be entered.  If your
  1679.           printer supports smaller fonts thereby enabling production of
  1680.           wider reports or reports turned sideways, enter a number
  1681.           corresponding to the font desired.  See the # - Printer Config
  1682.           section of the Developer's section of this User's Guide for more
  1683.           information.
  1684.           
  1685.                Once you have entered a font or pressed the <ENTER> key, the
  1686.           Printer Selection Screen will appear.  It permits you to specify
  1687.           whether to Print or Display the Report, whether to override the
  1688.           Record Selection Criteria and output ALL records, and whether to
  1689.           output records marked for deletion which typically are not
  1690.           output. See the Printer Selection Screen section of this User's
  1691.           Guide for more information on these options.
  1692.           
  1693.           
  1694.           2.10  L - LABELS Production
  1695.           
  1696.                The L - Labels option allows you to run existing dBASE III
  1697.           label formats and create new ones.  Creation of new labels is
  1698.           covered in the Developer's section of this User's Guide.
  1699.           
  1700.                Before selecting the Labels option, you already should have
  1701.           used the Select Utilities option to enter Record Selection
  1702.           Criteria and to specify the Lead Index for label output.  If you
  1703.           did not do so, simply press <ESC>ape to return to the Main Menu.
  1704.           
  1705.                When you select the Labels option, a listing of label forms
  1706.           in the default directory will be displayed.  You then are
  1707.           prompted to enter the name of the label form you wish to run. 
  1708.           Type in the file name EXACTLY as it appears in the directory
  1709.           listing.  Do NOT include the .LBL file extension.
  1710.           
  1711.                There also is a field which allows you to specify the
  1712.           PRINTER FONT to be used if the labels are to be printed.  If the
  1713.           labels are to be printed using standard 10 pitch type, then NO
  1714.  
  1715.  
  1716.  
  1717.                                        - 23 -
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.           font number needs to be entered.  See the # - Printer Config
  1725.           section of the Developer's section of this User's Guide for more
  1726.           information.
  1727.           
  1728.                Once you have entered a font or pressed the <ENTER> key, the
  1729.           Printer Selection Screen will appear.  It permits you to specify
  1730.           whether to Print or Display the Labels, whether to override the
  1731.           Record Selection Criteria and output ALL records, and whether to
  1732.           output labels for records marked for deletion. These typically
  1733.           are not output. See the Printer Selection Screen section of this
  1734.           User's Guide for more information on these options.
  1735.           
  1736.           
  1737.           2.11  T - FORM LETTER Generation
  1738.           
  1739.                The T - Form Letters option allows you to run existing
  1740.           WAMPUM form letters and create new ones.  Creation of new form          WAMPUM                                                        
  1741.           letters is covered in the Developer's section of this User's
  1742.           Guide.
  1743.           
  1744.                Before selecting the Form Letters option, you already should
  1745.           have used the Select Utilities option to enter Record Selection
  1746.           Criteria and to specify the Lead Index for form letter output. 
  1747.           If you did not do so, simply press <ESC>ape to return to the Main
  1748.           Menu.
  1749.           
  1750.                When you select the Form Letters option, a listing of form
  1751.           letter files in the default directory will be displayed.  Note
  1752.           that a form letter file is a standard .DBF file except that its
  1753.           file name begins with T-.  You then are prompted to enter the
  1754.           name of the form letter form you wish to run.  Type in the file
  1755.           name EXACTLY as it appears in the directory listing.  Do NOT
  1756.           include the .DBF file extension.
  1757.           
  1758.                There also is a field which allows you to specify the
  1759.           PRINTER FONT to be used if the form letters are to be printed. 
  1760.           If the form letters are to be printed using standard 10 pitch
  1761.           type, then NO font number needs to be entered.  See the # -
  1762.           Printer Config section of the Developer's section of this User's
  1763.           Guide for more information.
  1764.           
  1765.                Once you have entered a font or pressed the <ENTER> key, the
  1766.           Printer Selection Screen will appear.  It permits you to specify
  1767.           whether to Print or Display the Form Letters, whether to override
  1768.           the Record Selection Criteria and output ALL records, and whether
  1769.           to output form letters for records marked for deletion. These
  1770.           typically are not output. See the Printer Selection Screen
  1771.           section of this User's Guide for more information on these
  1772.           options.
  1773.           
  1774.           
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.                                        - 24 -
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.           2.12  W - WAMPUM Preformatted Output
  1791.           
  1792.                The WAMPUM Preformatted Output option allows you to run up                   WAMPUM                                                
  1793.           to 80 predefined Reports, Labels, and Form Letters each with
  1794.           predefined selection criteria, sort order, and even a related
  1795.           file for table lookup if desired.  This is perhaps WAMPUM's most                                                             WAMPUM       
  1796.           powerful feature and is NOT available in dBASE III at all.
  1797.           
  1798.                Before this option is available, the WAMPUM master file must
  1799.           be created and appropriate entries must be made for the pre-
  1800.           defined output desired.  This is covered in the Developer's
  1801.           section of this User's Guide.
  1802.           
  1803.                Assuming that this already has been done, then all that is
  1804.           necessary to run WAMPUM Preformatted Output is to select the W                           WAMPUM                                       
  1805.           option from the Main System Menu.  A two-column listing of
  1806.           reports, labels, and form letters available for automatic
  1807.           production then will be displayed.  Following the description of
  1808.           each item will be a single letter (R, L, or T) indicating whether
  1809.           the output is a Report, Label, or Form Letter. Mark the reports,
  1810.           labels, and form letters you wish to produce with a T or Y in the
  1811.           logical field provided to indicate which should be run.
  1812.           
  1813.                You will notice at the bottom of the screen a range of dates
  1814.           is specified.  The default range of dates is the beginning and
  1815.           ending of the current month unless today's date is less than the
  1816.           6th of the month.  In this case, the default is the beginning and
  1817.           ending dates of last month.  Most folks produce monthly reports
  1818.           for a prior month at the beginning of the next month so WAMPUM                                                                  WAMPUM
  1819.           saves you a little typing.
  1820.           
  1821.                The range of dates can be changed by you to any dates
  1822.           desired although the first date should always be less than or
  1823.           equal to the second date.  The range of dates are automatically
  1824.           used for any preformatted reports, labels, or form letters in
  1825.           which the developer wanted the end-user to have the flexibility
  1826.           to select the time period for the report at the time it was
  1827.           produced.  
  1828.           
  1829.                For instance, using the data base example outlined earlier
  1830.           to show how to select records, let us suppose that the developer
  1831.           had predefined a report which would output certain information
  1832.           about new entries covering a period of entry dates.  If that
  1833.           report were run as a WAMPUM Preformatted Report, you then could
  1834.           specify the range of entry dates at run time rather than the
  1835.           developer constantly having to update the master record.  This
  1836.           also frees you from having to master Boolean logic overnight!
  1837.           
  1838.                The only rule to remember is that the DATE RANGE specified
  1839.           applies to ALL output produced during a single run.  Thus, if you
  1840.           had two preformatted reports for which you wanted different date
  1841.           ranges on output, then you would have to run one report with one
  1842.           date range.  Then select the WAMPUM Preformatted option again,
  1843.           change the date range, and run the other report.
  1844.           
  1845.  
  1846.  
  1847.  
  1848.  
  1849.                                        - 25 -
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.                Once you have entered your choices, the Printer Selection
  1857.           Screen will appear.  It permits you to specify whether to Print
  1858.           or Display the output, whether to override the Record Selection
  1859.           Criteria and output ALL records, and whether to generate output
  1860.           for records marked for deletion. These typically are not output.
  1861.           See the Printer Selection Screen section of this User's Guide for
  1862.           more information on these options.
  1863.           
  1864.           
  1865.           2.13  Printer Selection Screen
  1866.           
  1867.           2.13.1  Printed Output
  1868.           
  1869.                Whenever you run a Report, Label, Form Letter, or WAMPUM                                                                 WAMPUM
  1870.           Preformatted Output, you will see the Printer Selection Screen
  1871.           which lets you choose whether to PRINT or DISPLAY the
  1872.           information.
  1873.           
  1874.                If you want the OUTPUT printed, type a T or Y at the prompt.
  1875.           
  1876.           
  1877.           2.13.2  Output All Records
  1878.           
  1879.                If record selection criteria are in effect, you also will be
  1880.           asked whether you want to override those criteria and OUTPUT
  1881.           information on ALL records in the data base.
  1882.           
  1883.                If you DO want to OVERRIDE the record selection criteria in
  1884.           effect, then change the default entry to T or Y.
  1885.           
  1886.           
  1887.           2.13.3  Output Records Marked for Deletion
  1888.           
  1889.                You also will be asked whether to output information on
  1890.           records marked for DELETION.  The default is No.
  1891.           
  1892.                If you want DELETED records included in your output, change
  1893.           the entry to T or Y.
  1894.           
  1895.           
  1896.           2.14  On-Line HELP
  1897.           
  1898.                The best way to learn WAMPUM is to read this User's Guide                                     WAMPUM                             
  1899.           cover to cover.  Most folks won't do that so WAMPUM provides much                                                       WAMPUM              
  1900.           of what is contained in the User's Guide in HELP screens keyed to
  1901.           where you are in the program.
  1902.           
  1903.                To access the HELP screens, press the F1 function key at any
  1904.           time.  Depending upon where you are in WAMPUM, a screen of HELP                                                 WAMPUM                  
  1905.           will be displayed.  Simply press the <ENTER> key to return to
  1906.           where you were.
  1907.           
  1908.                Every choice from the WAMPUM Main System Menu has an                                     WAMPUM                        
  1909.           intermediate screen which gives you a chance to change your
  1910.           mind.  It is on this second screen after picking any option that
  1911.  
  1912.  
  1913.  
  1914.  
  1915.                                        - 26 -
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.           the most detailed HELP is available.  Once you have read the HELP
  1923.           message and returned to where you were, you can return to the
  1924.           Main System Menu simply by pressing the <ESC>ape key.
  1925.           
  1926.                In short, you can get HELP on any WAMPUM topic without                                                 WAMPUM              
  1927.           actually having to complete execution of that particular
  1928.           function.
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.  
  1946.  
  1947.  
  1948.  
  1949.  
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.                                        - 27 -
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.           3  Developer Functions
  1989.           
  1990.           3.1  Creating A New Application
  1991.           
  1992.           3.1.1   Overview of Application Development Strategy
  1993.           
  1994.                As with any application development, the best advice in
  1995.           starting a new project is TURN OFF THE COMPUTER and use your head                                    TURN OFF THE COMPUTER                  
  1996.           for a while to figure out what you want to do.  What data input
  1997.           will you need to capture to get the output desired?
  1998.           
  1999.                Once you know what you want, then some familiarity with
  2000.           WAMPUM's structure will help.  WAMPUM is designed to be stored in          WAMPUM                         WAMPUM                            
  2001.           a directory from which it can be run regardless of the active
  2002.           default directory on your hard disk.  This means it should be in
  2003.           a directory supported by the current DOS PATH.
  2004.           
  2005.                The philosophy behind WAMPUM is that separate applications                                     WAMPUM                              
  2006.           should be built and stored in separate subdirectories which are
  2007.           NOT in the DOS PATH.  The reason for this is that WAMPUM accesses          ___                                                                                                                          WAMPUM                   ___                                                              
  2008.           files on the hard disk using the same PATH command that DOS uses.
  2009.           If you build an application in a directory which is part of the
  2010.           PATH, then its supporting files may unintentionally spill over
  2011.           into other WAMPUM applications as you begin building them.                     WAMPUM                                         
  2012.           
  2013.                Each WAMPUM application typically will include a main file,                    WAMPUM                                                
  2014.           perhaps a related file, several indexes, and numerous reports,
  2015.           labels, and forms.  In addition, each time you run WAMPUM in a                                                             WAMPUM     
  2016.           new directory, it automatically builds some supporting files for
  2017.           that application.  These include EDIT.DBF (which is used to store                                           EDIT.DBF                        
  2018.           the edit checks for a particular application), KEYS.DBF (which is                                                         KEYS.DBF          
  2019.           used to store any keyboard macros for a particular application),
  2020.           MENUS.DBF (which is used to store up to 9 data entry screen          MENUS.DBF                                                  
  2021.           formats) and, if requested, WAMPUM.DBF (which is used to build a                                      WAMPUM.DBF                          
  2022.           library of canned reports, labels, and form letters which can be
  2023.           run without users having to master Boolean logic and sorting
  2024.           rules).  For the same reason stressed above, you should not run
  2025.           WAMPUM in a directory which is part of the DOS PATH for it will          WAMPUM                                                         
  2026.           build these supplemental files which may then inadvertently spill
  2027.           over into other applications located elsewhere on the hard disk!
  2028.           
  2029.                You may be wondering why anyone would want a DOS PATH if it
  2030.           causes all these problems.  The answer is that the DOS PATH gives
  2031.           WAMPUM the capability to share data stored in other directories          WAMPUM                                                         
  2032.           without having to have a duplicate copy in the current directory.
  2033.           For example, the printer configuration files can be stored in the
  2034.           same directory as WAMPUM yet they may be used from any directory.                            WAMPUM                                         
  2035.           Similarly, in certain situations with very large data bases which
  2036.           must be shared by several applications, it may be desirable to
  2037.           move the shared data base into a directory which is part of the
  2038.           DOS PATH so that it can be used in multiple applications without
  2039.           having to duplicate the data. These are considerations you would
  2040.           want to think through while the computer is turned OFF!
  2041.           
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.                                        - 28 -
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.                What follows in the subsequent sections is the STEP-by-STEP
  2055.           process of building a new WAMPUM application.  In order to                                    WAMPUM                          
  2056.           simplify the presentation, it helps to use a sample application.
  2057.           We will assume that the application to be built is based upon the
  2058.           data base outlined previously.  The structure of that file is
  2059.           repeated here for the sake of clarity:
  2060.           
  2061.                FIELD NAME     FIELD TYPE     FIELD LEN      FIELD DEC               __________     __________     _________      _________
  2062.           
  2063.                LASTNAME           C             20              0
  2064.                ACCTNO             N              5              0
  2065.                ENTRYDT            D              8              0
  2066.                MARRIED            L              1              0
  2067.                COMMENTS           M             10              0
  2068.           
  2069.           
  2070.           3.1.2   Create A New SubDirectory
  2071.           
  2072.                The first step in building a new WAMPUM application is to                                                WAMPUM                  
  2073.           create a new subdirectory on the hard disk to house the
  2074.           information. You must be at the DOS prompt to perform these
  2075.           steps.  
  2076.           
  2077.                We recommend you name the subdirectory using a single word
  2078.           of up to 8 characters in length with no embedded spaces or
  2079.           punctuation.  To keep things simple, let's name it SAMPLE here.
  2080.           If you want to follow along, type the following commands. Press
  2081.           the <ENTER> key after typing each command.
  2082.           
  2083.                               PROMPT $P$G                              PROMPT $P$G
  2084.                               CD \                               CD \ 
  2085.                               MD SAMPLE                              MD SAMPLE
  2086.                               CD \SAMPLE                              CD \SAMPLE
  2087.           
  2088.                The commands above (1) change the DOS prompt to assure that
  2089.           you'll know the subdirectory in which you are working, (2) move
  2090.           you to the "root" (top) directory, (3) make a new directory named
  2091.           "SAMPLE", and (4) move you to the new "SAMPLE" directory.  If you
  2092.           are working on the C: drive, the prompt on your screen after
  2093.           issuing the above commands should be C:\SAMPLE>.                                               C:\SAMPLE> 
  2094.           
  2095.                You now are ready to start up WAMPUM.  Since you are                                             WAMPUM                
  2096.           building a new application, you will want to use DEVELOPER MODE.
  2097.           Unless you need to force WAMPUM into monochrome mode, type the                                   WAMPUM                               
  2098.           following command and press the <ENTER> key:
  2099.           
  2100.                               WAMPUM VOODOO                              WAMPUM VOODOO
  2101.           
  2102.                If you have a Compaq or some other clone that reports a
  2103.           color card when you are using a monochrome display, then type:
  2104.           
  2105.                               WAMPUM VOODOO MONO                              WAMPUM VOODOO MONO
  2106.           
  2107.           
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.                                        - 29 -
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.           3.1.3   Building a New File
  2121.           
  2122.                The first piece of the new application to build is the main
  2123.           data file.  This may contain up to 400 fields, although you will
  2124.           forfeit dBASE III compatibility when you create more than 128.
  2125.           
  2126.                Select the B - Build New File option from the Main System                          B - Build New File                            
  2127.           Menu by typing a B or highlight the option and press <ENTER>. You
  2128.           then will be prompted to enter a file name for your new data base
  2129.           file.  The file name must comply with DOS requirements for file
  2130.           names, i.e. up to 8 characters, no spaces, and no punctuation.
  2131.           Think of a file name that bears some relationship to the
  2132.           application.  It makes things easier.  For our sample, let's use
  2133.           ACCOUNTS.  Type in the file name and press <ENTER>.  Note that
  2134.           you do NOT enter the file extension which WAMPUM assigns as .DBF.                                                    WAMPUM                 
  2135.           
  2136.                You then will be prompted to enter four pieces of
  2137.           information for each new field in your data base: a FIELD NAME, a
  2138.           FIELD TYPE, a FIELD LENGTH, and FIELD DECIMALS, if any. 
  2139.           
  2140.                In determining the order of the fields in the data base
  2141.           being created, keep in mind that BROWSE mode, which was discussed
  2142.           previously under the Select Utilities option, displays a single
  2143.           line of fields for about 20 records at a time.  If your users
  2144.           will be using BROWSE mode, then you should select the most
  2145.           important fields in the data base as the first fields in the
  2146.           file.  This will assure that they are displayed when the user
  2147.           sets BROWSE mode ON.  The actual number of fields which will fit
  2148.           on a single line of the screen is determined by two factors: the
  2149.           length of the field names used and the maximum length of the
  2150.           field data.  Adding these lengths together plus a space between
  2151.           each field, WAMPUM will display as many fields as will fit within                      WAMPUM                                               
  2152.           79 characters.  The first character position of each line is
  2153.           reserved to display whether a record has been marked DELETED.
  2154.           
  2155.                Field names should bear some resemblance to the piece of               Field names                                             
  2156.           data which will be stored in the field.  dBASE III supports 10
  2157.           character field names, and WAMPUM can use them, too.  However,                                     WAMPUM                             
  2158.           applications are much more straight-forward if field names are
  2159.           limited to 8 characters or less since this length matches the DOS
  2160.           filename length restriction.  WAMPUM imposes this 8 character                                        WAMPUM                         
  2161.           limit with its file creation utility.
  2162.           
  2163.                Field types and lengths supported by WAMPUM include:               Field types and lengths              WAMPUM         
  2164.           
  2165.           Field Type     Abbrev    Min.Len.  Max.Len.  Comments                      ________________________________________________________________ 
  2166.            
  2167.           Character        C          1        254     Any text string
  2168.           Numeric          N          1         10     Numeric for math
  2169.           Date             D          8          8     Any date info
  2170.           Logical          L          1          1     True/False info
  2171.           Memo             M         10         10     Free-form WP text
  2172.           
  2173.           
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.                                        - 30 -
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186.                Field decimals will always be 0 except for numeric fields in               Field decimals                                              
  2187.           which you want to use real numbers.  Remember that with such
  2188.           fields, the TOTAL length is the maximim number of integer
  2189.           positions, plus 1 for the decimal, plus the number of decimal
  2190.           positions.  Thus, if the largest value to be entered in a numeric
  2191.           field is 999.99, the field length is 6 and decimals is 2.
  2192.           
  2193.                Enter the information for the fields outlined in our sample.
  2194.           After entering all of the fields, a new blank record will
  2195.           appear.  Press the <ESC>ape key to indicate that you are
  2196.           finished.
  2197.           
  2198.           
  2199.           3.1.4   Selecting the New File
  2200.           
  2201.                Once the data base structure has been created, you are ready
  2202.           to tell WAMPUM which file you will be working with.  From the                  WAMPUM                                               
  2203.           Main System Menu select the F - File Select option to place the                                      F - File Select                    
  2204.           file in use.
  2205.           
  2206.                When you pick this option, you will be prompted for the name
  2207.           of the file to use.  If you forget the name of the file, just
  2208.           press the <ENTER> key and a list of .DBF files in the current
  2209.           directory will be displayed.  Press <ENTER> to return to the file
  2210.           name prompt.  Type ACCOUNTS as the name of the new file and press                             ACCOUNTS                                      
  2211.           <ENTER> to redisplay the Main System Menu.
  2212.           
  2213.                The bottom of the Main System Menu now should show the file
  2214.           in use with a notation: FILE: ACCOUNTS.                                  FILE: ACCOUNTS 
  2215.           
  2216.           
  2217.           3.1.5   Indexing the New File
  2218.           
  2219.           3.1.5.1  Overview
  2220.           
  2221.                WAMPUM indexes serve two functions in run-time applications.               WAMPUM                                                      
  2222.           First, they provide a quick means of retrieving records for edit,
  2223.           display, or printing.  Typical retrieval times even with large
  2224.           data bases are less than one second.  Indexes also serve as the
  2225.           sorting tool for all output: reports, labels, and form letters.
  2226.           
  2227.                Thus, in building a new application, you need to take both
  2228.           of these considerations into account.  You will need indexes to
  2229.           retrieve your data quickly for updating.  And you may need other
  2230.           indexes to assure that reports, labels, and form letters are
  2231.           produced in the proper sorted order.
  2232.           
  2233.                The primary advantage in using indexes rather than a sort
  2234.           for output is that no physical sorting of the data base ever                             _________________________________________
  2235.           takes place since the indexes are constantly updated as new          ___________                                                
  2236.           records are added and old ones are modified.  This saves an
  2237.           enormous amount of time in producing reports.
  2238.           
  2239.                WAMPUM supports up to FIVE indexes for any application.  It               WAMPUM                                                     
  2240.           should be noted that while these indexes function much like the
  2241.           indexes in dBASE III, they are not compatible.  Thus, if you are                                         ___                              
  2242.  
  2243.  
  2244.  
  2245.                                        - 31 -
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.           moving dBASE III applications over to use with WAMPUM, the data                                                         WAMPUM          
  2253.           base, reports, and labels are compatible, but the indexes are
  2254.           not.  These can be rebuilt easily using the guidelines which
  2255.           follow.  WAMPUM indexes have a file extension of .NTX.                   WAMPUM                                       
  2256.           
  2257.                Select the I - Index select/create option from the Main                          I - Index select/create                     
  2258.           System Menu.  Notice that this option provides a developer with a
  2259.           means both to create new indexes and to use existing ones.  Both
  2260.           avenues are addressed in the next sections of this Guide.
  2261.           
  2262.           
  2263.           3.1.5.2  Creating New Indexes
  2264.           
  2265.                New indexes can be created in one of two ways depending upon
  2266.           the type of index desired.  WAMPUM can create an index of any
  2267.           character, numeric, or date field as it exists in the data base. 
  2268.           Or you can create a special index made up of a combination of
  2269.           fields in the data base using dBASE string manipulation
  2270.           functions.  For example, if your data base had fields for both a
  2271.           first name and a last name, you might want a single index which
  2272.           sorted the data base on last name and then first name within the
  2273.           last name.
  2274.           
  2275.                The simpler index which is simply a single field index is
  2276.           created by entering a single asterisk (*) in the space provided
  2277.           for the index name.  If you wish to create more than one index,
  2278.           enter a single * in the space provided for Index 1, Index 2, etc.
  2279.           When you have entered as many asterisks as desired, press <PgDn>
  2280.           to continue.  The screen will then clear, and a list of all the
  2281.           fields in your data base will appear.  Mark the name of the field
  2282.           you want to index with the letter T or Y.  Mark only ONE field on
  2283.           the screen True.  Then <PgDn> to continue.  If you indicated that
  2284.           you wished to create more than one index by putting an * in more
  2285.           than one of the Index spaces, then you will get another screen
  2286.           with the same field list.  Mark the second field you want to
  2287.           index with a T or Y, and <PgDn> again.  Continue this process
  2288.           until up to 5 indexes have been created.
  2289.           
  2290.                In our example, you probably would want to index two fields:
  2291.           the LASTNAME field and the ACCTNO field.  So you should place a
  2292.           single * in the first two Index spaces provided and <PgDn>.
  2293.           
  2294.                In some circumstances, a more complex index may be desired.
  2295.           If you know what you are doing (i.e. you really are a dBASE III
  2296.           programmer), you can build any type of index to achieve any type
  2297.           of sorting desired.  To build a more complex index, enter two
  2298.           asterisks (**) beside each Index entry provided and <PgDn>.  You
  2299.           then will be prompted to name the new index and then to enter the
  2300.           index expression.  This expression can be ANY legal dBASE III
  2301.           string expression.  Note one quirk with Clipper's indexes insofar                                                  _________                
  2302.           as TRIMmed fields are concerned.  If you are trimming spaces off
  2303.           character strings, they must be added as real spaces at the end
  2304.           of the expression.  Otherwise, the resultant index will be
  2305.           nothing but a null string.  For example, if you wanted to index
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.                                        - 32 -
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.           on lastname then comma space first name, the correct syntax
  2319.           is TRIM(LASTNAME)+", "+FIRSTMI+SPACE(20).  The SPACE(20)             _____________________________________                
  2320.           expression assumes the LASTNAME field is 20 characters in length.
  2321.           
  2322.           
  2323.           3.1.5.3  Selecting Indexes
  2324.           
  2325.                Once you have built new indexes, they automatically are
  2326.           selected for use in the same order they were built.  You can
  2327.           change both the LEAD INDEX and the active indexes at any time by
  2328.           picking the I - Index select/create option and entering the                      I - Index select/create                        
  2329.           number of the lead index or the names of the indexes you desire
  2330.           to use.
  2331.           
  2332.                One caution is in order.  Remember that indexes are only
  2333.           UPDATED with ADD or EDIT if those indexes are in use at the time
  2334.           the file is changed!  You can ascertain which indexes are in use
  2335.           by looking at the INDX listing which appears below the Main
  2336.           System Menu.  If you built the indexes recommended in the last
  2337.           section, the last line of your screen should read as follows:
  2338.           
  2339.                     FILE: ACCOUNTS   INDX: LASTNAME,ACCTNO                    FILE: ACCOUNTS   INDX: LASTNAME,ACCTNO
  2340.           
  2341.           
  2342.           3.1.6   Printer Configuration (.MEM file)
  2343.           
  2344.           3.1.6.1  Overview
  2345.           
  2346.                In order to create high-quality output in reports, labels,
  2347.           and form letters, you will need to configure an application for a
  2348.           specific printer.  WAMPUM is packaged with several printer                             WAMPUM                                 
  2349.           configuration tables which already have been built to support a
  2350.           number of popular printers.  If you're a lucky person, your work
  2351.           has already been done.  If not, read the section on constructing
  2352.           a new printer table below.
  2353.           
  2354.                WAMPUM is designed to allow a developer to imbed printer               WAMPUM                                                  
  2355.           codes in reports, labels, and form letters to control the actual
  2356.           printing of text.  In addition, the end-user can specify the
  2357.           starting printer font to be used to output any report, label, or
  2358.           form letter.  Finally, WAMPUM preformatted output includes the
  2359.           option of specifying the initialization printer string used
  2360.           whenever output is generated.
  2361.           
  2362.                What is a WAMPUM printer table?  It is a standard dBASE III                         WAMPUM                                           
  2363.           memory variable file (.MEM file extension) with special codes
  2364.           that tell your printer to print in a certain mode.  The following
  2365.           field names are reserved by WAMPUM and should not be used as
  2366.           field names in your data bases.  These fields can be used in                                                        ___           
  2367.           creating report forms, labels, and form letters to vary the type
  2368.           styles within those output documents.
  2369.           
  2370.                     FONTINIT       FONT1     FONT4     FONT7                    FONTINIT       FONT1     FONT4     FONT7
  2371.                     FONTRESET      FONT2     FONT5     FONT8                    FONTRESET      FONT2     FONT5     FONT8
  2372.                     FONT0          FONT3     FONT6     FONT9                    FONT0          FONT3     FONT6     FONT9
  2373.           
  2374.  
  2375.  
  2376.  
  2377.                                        - 33 -
  2378.  
  2379.  
  2380.  
  2381.  
  2382.  
  2383.  
  2384.                Note that the FONTINIT sequence always gets sent to the                                               ______                                              FONTINIT                                                                                ______                 
  2385.           printer before anything is printed.  The FONTRESET sequence                                                   FONTRESET         
  2386.           always gets sent after anything is printed.  If these fields are
  2387.           empty, then obviously nothing gets sent.
  2388.           
  2389.                The default font for all output is FONT0.  This always gets                                                  FONT0                   
  2390.           sent after the FONTINIT sequence unless you specify some other                         FONTINIT                                       
  2391.           number when the output is generated.
  2392.           
  2393.                Listed below is the definition logic used to develop the
  2394.           font codes for the HP Laserjet printers.  It is similar to what
  2395.           was used for the Epson printers, except all output is in portrait
  2396.           mode with Epson.  In general terms, FONT9 is reserved for very                                              FONT9                     
  2397.           small print to accomodate reports wider than 132 columns. FONT8                                                                    FONT8
  2398.           is reserved to accomodate reports from 81 to 132 columns wide.
  2399.           
  2400.                     FONT0     10 pitch Courier, portrait mode                    FONT0                                    
  2401.                     FONT1     10 pitch standard, portrait mode                    FONT1                                     
  2402.                     FONT2     10 pitch bold, portrait mode                    FONT2                                 
  2403.                     FONT3     10 pitch italics, portrait mode                    FONT3                                    
  2404.                     FONT4     Proportional, big bold, portrait mode                    FONT4                                          
  2405.                     FONT5     Proportional, baby print, portrait mode                    FONT5                                            
  2406.                     FONT6     Standard, baby print, portrait mode                    FONT6                                        
  2407.                     FONT7     10 pitch with codes suitable for LABELS                    FONT7                                            
  2408.                     FONT8     10 pitch, standard, landscape mode                    FONT8                                       
  2409.                     FONT9     Standard, baby print, landscape mode                    FONT9                                         
  2410.           
  2411.                Obviously, use of these font codes can be developed as your
  2412.           application demands.  There may be instances in which you need
  2413.           underscoring.  This can be accomplished using one font to turn on
  2414.           automatic underscore and another to turn it off if your printer
  2415.           supports it.
  2416.           
  2417.           
  2418.           3.1.6.2  Selecting an Existing Printer Table
  2419.           
  2420.                To select an existing printer table for use, choose the
  2421.           option labeled # - PRINTER Config on the Main System Menu.  A                         # - PRINTER Config                            
  2422.           listing of all .MEM files in the current directory will be
  2423.           displayed.  Enter the name of the printer table you wish to use
  2424.           without the .MEM file extension.  Note that you may use a table
  2425.           which is stored in another directory so long as that directory is
  2426.           part of the DOS PATH command.
  2427.           
  2428.                Once you have selected a printer, the Main System Menu will
  2429.           reappear and the last line on the screen should now show the
  2430.           printer and FONT in use.  Assuming you selected the HPLASERA
  2431.           font, the last line of your screen should look like this:
  2432.           
  2433.                FILE: ACCOUNTS  INDX:LASTNAME,ACCTNO  PRT: HPLASERA/0               FILE: ACCOUNTS  INDX:LASTNAME,ACCTNO  PRT: HPLASERA/0
  2434.           
  2435.           
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.                                        - 34 -
  2444.  
  2445.  
  2446.  
  2447.  
  2448.  
  2449.  
  2450.           3.1.6.3  Creating a New Printer Table
  2451.           
  2452.                If there is no printer table already available for your non-
  2453.           standard printer, then you will need to build one.  It's easy! 
  2454.           First, select the # - PRINTER config option on the Main Menu.                            # - PRINTER config                         
  2455.           
  2456.                When WAMPUM prompts for the name of the printer table to                    WAMPUM                                             
  2457.           use, type an asterisk (*) and press <ENTER>.  You then will get a
  2458.           data entry screen in which to type the special codes for your
  2459.           printer.  You will need your printer manual to figure these out!                    ______________________________________________________
  2460.           
  2461.                First, decide what you want each of the printer fonts to
  2462.           do.  You also must determine what sort of initialization
  2463.           sequence, if any, you want to initiate whenever anything is
  2464.           printed.  And, you will want to decide whether to reset your
  2465.           printer after the printing is completed.  Almost every printer
  2466.           has some code sequence which resets the printer to its default
  2467.           settings just as if the printer had been switched off and on. 
  2468.           This is a good idea!  It always assures that your printer is
  2469.           configured in a standard way for the next job.  It's an equally
  2470.           good idea to execute this reset as part of the printer initiali-
  2471.           zation sequence.
  2472.           
  2473.                Most printer codes start with an <ESC>ape code which has the
  2474.           ASCII value of 27.  In a lot of printer manuals, it is referred
  2475.           to as CHR$(27) which is the way <ESC> is written in BASIC.  Any
  2476.           time you see a code written as above which cannot be typed using
  2477.           the standard typewriter keyboard, you can enter it in WAMPUM just                                                                WAMPUM     
  2478.           as you would in LOTUS 1-2-3 or Symphony, i.e. \027 (a backslash                                                        \027             
  2479.           followed by a three-digit number representing the ASCII code of                                    ______                               
  2480.           the character desired: zero, two, seven).  For example, if your
  2481.           printer manual says that ESCAPE E or CHR$(27)+E is the escape
  2482.           sequence to reset your printer, then enter the following: \027E.                                                                     \027E  
  2483.           Particularly with laser printers, it may be desirable in some
  2484.           situations to force some carriage returns at the beginning of a
  2485.           job.  This is especially true to line up mailing labels.  To
  2486.           accomodate this, WAMPUM permits the developer to insert carriage                           WAMPUM                                         
  2487.           return codes in the font setups using the tilde (~).  One tilde
  2488.           means one return.  Two tildes means two returns, etc.  Make
  2489.           certain that ALL tildes follow the complete escape sequence you
  2490.           desire to generate for each font code since characters following
  2491.           a tilde are ignored.
  2492.           
  2493.                Use this process to build the printer table for your
  2494.           printer, and you're all set.  Press the <PgDn> key when you have
  2495.           entered all of the codes desired.
  2496.           
  2497.                Note that you also can edit an existing printer table by
  2498.           entering an * as if you were creating a new printer table.  When
  2499.           WAMPUM prompts for the name of the new printer table, simply          WAMPUM                                                      
  2500.           enter the name of the old table.  When the data entry screen
  2501.           appears, you will see that codes such as \027 have been converted
  2502.           by WAMPUM into the actual ASCII character.  In the case of the             WAMPUM                                                     
  2503.           <ESC> code, this is an arrow pointing to the left.  These codes
  2504.           can be deleted or edited as desired.
  2505.           
  2506.  
  2507.  
  2508.  
  2509.                                        - 35 -
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.                A final word of warning.  Do NOT press the <ESC> key to                                         _____________________________
  2517.           enter an escape code!  This key allows you to ABORT updating a          ____________________                                          
  2518.           printer table.  To enter an escape code as part of a printer
  2519.           string, you must type \027.
  2520.           
  2521.           
  2522.           3.1.7   Menu Heading for New Application
  2523.           
  2524.                Whenever you first start WAMPUM, a heading appears above the                                        WAMPUM                             
  2525.           Main System Menu.  This heading says WAMPUM version *.* etc.  For
  2526.           your end-users, you probably will want to change it to reflect
  2527.           what application is being run within the WAMPUM system, e.g.                                                   WAMPUM             
  2528.           Automated Widget Collection System or whatever.
  2529.           
  2530.                To change the heading, pick the H - Heading Change option on                                               H - Heading Change          
  2531.           the Main System Menu.  When the prompt appears, you can delete
  2532.           the existing heading by pressing CTRL-Y.  Then type in your new
  2533.           heading and press <ENTER>.  You do not have to center your
  2534.           heading.  WAMPUM will automatically do this when the system is                    WAMPUM                                              
  2535.           restarted.
  2536.           
  2537.                Whenever you change the heading, WAMPUM automatically stores                                                WAMPUM                     
  2538.           the current settings of the system into the WAMPUM configuration                                                      WAMPUM              
  2539.           file in the current directory.  The filename is WAMPUM.MEM.  It
  2540.           will always ask whether to turn on the audit trail/transaction
  2541.           logging feature of WAMPUM.  Type an N at this prompt for now.                             WAMPUM                                    
  2542.           
  2543.           
  2544.           3.1.8   Relating the New File
  2545.           
  2546.                For purposes of report, label, and form letter output, you
  2547.           may relate a secondary data base to an identical field in the
  2548.           primary data base if the following conditions are met.  The
  2549.           secondary data base must be in the default directory or in the
  2550.           path specified by the DOS PATH command.  The secondary data base
  2551.           must be indexed on a field identical in size, type, and field
  2552.           name with a field in the primary data base.  Note that the
  2553.           matching field in the primary data base need not be indexed. 
  2554.           Whenever a report, label, or form letter is run while a related
  2555.           file and index are set, the developer may access data in any of
  2556.           the fields of the matching related file record by specifying the
  2557.           field names with the following syntax: ALIAS->fieldname where                                                 ________________      
  2558.           ALIAS is the name of the related file and FIELDNAME is the name
  2559.           of the field to be output from the related file.
  2560.           
  2561.                A secondary file may be related in one of two ways.  The
  2562.           first is to select the Z - Zoom/Relate File option on the Main                                 Z - Zoom/Relate File                   
  2563.           System Menu and enter the name of the file and index to be
  2564.           related.  This relation stays in effect until changed provided
  2565.           you save it as part of the configuration.  Once a file has been
  2566.           related successfully, the file name display on the last line of
  2567.           the Main System Menu screen should look like the following:
  2568.           
  2569.                               FILE: ACCOUNTS/R                              FILE: ACCOUNTS/R
  2570.           
  2571.  
  2572.  
  2573.  
  2574.  
  2575.                                        - 36 -
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.           Any reports. labels, or form letters produced after relating the
  2583.           secondary file may access the fields in the related file also.
  2584.           
  2585.                The second method of relating a file and index is as part of
  2586.           developing the WAMPUM PreFormatted Output file.  This is
  2587.           discussed in a subsequent section of the User's Guide.  It
  2588.           provides additional flexibility since it permits the developer to
  2589.           relate different secondary files and indexes to different
  2590.           reports, labels, and form letters.  WAMPUM Preformatted Output
  2591.           does not rely upon the relation established using the Z option.               ___                                                                                                                       Z                       ___                                                       
  2592.           
  2593.           
  2594.           3.1.9   Storing the New Configuration (WAMPUM.MEM)
  2595.           
  2596.                The configuration of a given application is stored in a
  2597.           configuration file called WAMPUM.MEM when either of the following
  2598.           events occurs.  First, whenever the Menu Heading is changed using
  2599.           the H option on the Main System Menu, the application configu-              H                                                         
  2600.           ration will be updated unless the developer pressed <ESC> after
  2601.           selecting this option.  Second, the configuration can be updated
  2602.           at any time by selecting G - CONFIG Update from the Main System                                   G - CONFIG Update                     
  2603.           Menu.
  2604.           
  2605.                Whenever either event occurs, the system will ask whether to
  2606.           enable the audit trail file. See section 3.1.14 for a description
  2607.           of this function.  For now, leave it false.
  2608.           
  2609.                Once the application is reconfigured, then WAMPUM remembers                                                          WAMPUM          
  2610.           the new configuration the next time WAMPUM is run whether it is                                              WAMPUM                     
  2611.           run in Developer or End-User mode.  This permits a developer to
  2612.           completely customize a WAMPUM application and then turn it over                                 WAMPUM                                  
  2613.           to end-users without the end-user having to master all of the
  2614.           concepts involved in building an application from the ground up.
  2615.           
  2616.           
  2617.           3.1.10  Building Reports, Labels, and Form Letters
  2618.           
  2619.           3.1.10.1  REPORTS
  2620.           
  2621.           3.1.10.1.1  Overview
  2622.           
  2623.                WAMPUM Reports are designed using the Clipper REPORT                                                     ________                     WAMPUM                                                                                                   ________      
  2624.           Generator, which Nantucket generously has allowed us to
  2625.           distribute without charge.  Before you can create new report
  2626.           forms or revise old ones, you need to make sure the program
  2627.           REPORT.EXE is located in a directory supported by your DOS PATH
  2628.           command.  This will assure that WAMPUM can access the report                                          WAMPUM                      
  2629.           generator whenever you want to design or redesign a report form.
  2630.           As indicated previously, WAMPUM requires a minimum of 420K memory                                   WAMPUM                                  
  2631.           to access the report writer from within WAMPUM.                                                  WAMPUM 
  2632.           
  2633.                Before designing a report, you will always want to print out
  2634.           a listing of the file structure with which you will be working. 
  2635.           Pick the S - Select Utilities option and specify T or Y for the                   S - Select Utilities                                  
  2636.           List File Structure option.  Then type Y when asked whether to
  2637.           print the structure listing.
  2638.  
  2639.  
  2640.  
  2641.                                        - 37 -
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.           
  2649.                The Clipper Report Generator is virtually a clone of the                   _______                                             
  2650.           dBASE III report writer which is accessed in dBASE with the
  2651.           command CREATE REPORT filename or MODIFY REPORT filename.  Thus,                  CREATE REPORT filename    MODIFY REPORT filename        
  2652.           anyone who is generally familiar with the dBASE III method of
  2653.           designing report forms will have no problem doing the same with
  2654.           WAMPUM.          WAMPUM 
  2655.           
  2656.                A report form is a file which contains instructions telling
  2657.           WAMPUM which pieces of information you want to extract from a          WAMPUM                                                       
  2658.           data base.  Note that we said "which pieces of information"
  2659.           meaning which fields rather than which records.  This is an
  2660.           important distinction since neither WAMPUM reports nor dBASE                                              WAMPUM                  
  2661.           reports control which records print on a report.  That is
  2662.           controlled with record selection using the S - Select Utilities                                                     S - Select Utilities
  2663.           option in WAMPUM.  You might more accurately refer to report                    WAMPUM                                            
  2664.           forms as a formatting template through which you "pour"
  2665.           information from a data base.  
  2666.           
  2667.                All WAMPUM reports must have a DOS-standard file name with                   WAMPUM                                                
  2668.           no file extension.  As is true with dBASE, WAMPUM supplies the                                                     WAMPUM             
  2669.           file extension of .FRM with all report forms.
  2670.           
  2671.                The R - REPORTS Menu option on the WAMPUM Main System Menu                   R - REPORTS Menu               WAMPUM                 
  2672.           provides three capabilities to the user.  First, you can run any
  2673.           existing report form whether created with the Clipper Report                                                        _______       
  2674.           Generator or with the dBASE III or dBASE III Plus report writer. 
  2675.           Second, you can create new report forms using the Clipper Report                                                            _______       
  2676.           Generator.  Finally, you can revise existing report forms using
  2677.           the Clipper Report Generator.  The reports need not have been              _______                                                  
  2678.           created originally with the Clipper Report Generator.                                      _______                  
  2679.           
  2680.                How to run reports is explained in the end-user section of
  2681.           this User's Guide.  The following two sections address how to
  2682.           create new report forms and revise old ones.
  2683.           
  2684.           
  2685.           3.1.10.1.2  Creating A New Report Format
  2686.           
  2687.                After printing a listing of the file structure with which
  2688.           you will be working, the next step in creating a new report form
  2689.           is to select the R - Reports Menu option from the WAMPUM Main                           R - Reports Menu                 WAMPUM     
  2690.           System Menu.  When prompted for the name of the report form to
  2691.           run, type an asterisk (*) and press the <PgDn> key.  Then enter
  2692.           the name you wish to assign to this new report form.  Do not
  2693.           enter a file extension since WAMPUM automatically assigns .FRM as                                       WAMPUM                              
  2694.           the file extension in keeping with the dBASE naming convention. 
  2695.           WAMPUM then will run the Clipper Report Generator assuming you                                   _______                                        WAMPUM                                                                                           _______                              
  2696.           have sufficient memory to support it and assuming WAMPUM can find                                                            WAMPUM         
  2697.           REPORT.EXE in the DOS PATH.
  2698.           
  2699.           
  2700.                As is true with the dBASE III report writer, the Clipper                                                                _______
  2701.           Report Generator divides a report into three parts:
  2702.           
  2703.           
  2704.  
  2705.  
  2706.  
  2707.                                        - 38 -
  2708.  
  2709.  
  2710.  
  2711.  
  2712.  
  2713.  
  2714.           
  2715.                          1.  Page Heading & Format Settings                         1.  Page Heading & Format Settings
  2716.           
  2717.                          2.  Break Level Controls                         2.  Break Level Controls
  2718.           
  2719.                          3.  Report Column Contents & Headings                         3.  Report Column Contents & Headings
  2720.           
  2721.                The Page Heading & Format Settings screen allows you to                   Page Heading & Format Settings                     
  2722.           specify the title of your report as well as the dimensions of the
  2723.           paper on which the report will be printed or displayed.  You also
  2724.           indicate whether the report should be single or double-spaced.
  2725.           For the Page Heading, just type in whatever title you want to
  2726.           appear at the top of your report when it prints out.  Do NOT
  2727.           center the title since WAMPUM will do this for you automatically.                                 WAMPUM                                    
  2728.           If you want a multi-line heading, just type it the way it should
  2729.           appear at the top of each page of the report.  
  2730.           
  2731.                Once you have entered a Page Heading, press the <ENTER> key
  2732.           to move to the Format Settings fields.  There are five of these:
  2733.           
  2734.                          1.  Enter page width  . . . . . .  80                         1.  Enter page width  . . . . . .  80
  2735.                          2.  Enter left margin . . . . . .   8                         2.  Enter left margin . . . . . .   8
  2736.                          3.  Enter right margin  . . . . .   0                         3.  Enter right margin  . . . . .   0
  2737.                          4.  Enter no. lines per page  . .  58                         4.  Enter no. lines per page  . .  58
  2738.                          5.  Double spaced report? . . . .   N                         5.  Double spaced report? . . . .   N
  2739.           
  2740.                Shown beside each of the above entries is the default value
  2741.           which will be used unless you change them.  You should be aware
  2742.           as well that a minor bug in the Clipper Report Generator causes                                          _______                        
  2743.           it to reset these values to the defaults every time a report is                                                   __________            
  2744.           revised or edited.  Thus, if you change them, you will have to
  2745.           change them again every time you edit the report form.
  2746.           
  2747.                For normal printers, the default settings usually are fine
  2748.           except you may wish to narrow the left margin to about 2 just to
  2749.           provide more report space for information.  For those using a
  2750.           laser printer, you will need to adjust the settings or your
  2751.           reports will run off the bottom of the page since most lasers
  2752.           force a 1/2 inch margin at the top and bottom of a page.  With
  2753.           standard 10 pitch, portrait mode reports, the appropriate
  2754.           settings are 80, 2, 0, 56, and N or Y depending upon whether you
  2755.           want the report single or double-spaced.  If you are printing
  2756.           sideways (landscape mode) with FONT8 (10 pitch) or with FONT9 
  2757.           (16 pitch), then the settings should be as follows:
  2758.           
  2759.                          FONT8:    105, 2, 0, 40, and N or Y                         FONT8:    105, 2, 0, 40, and N or Y
  2760.           
  2761.                          FONT9:    160, 2, 0, 40, and N or Y                         FONT9:    160, 2, 0, 40, and N or Y
  2762.           
  2763.           
  2764.                Once you have entered the Page Heading and report settings,
  2765.           press the <PgDn> key to display the second screen of the Clipper                                                                   _______
  2766.           report generator.  This screen is used principally to break
  2767.           reports into sections based upon a change in the value of some
  2768.           key field in the data base.  For beginners, just press <PgDn> to
  2769.           skip this screen.  For experts, you should recall that your
  2770.  
  2771.  
  2772.  
  2773.                                        - 39 -
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.           report will not break properly on the field specified in
  2781.           Group/Subtotal on unless that same field is the primary index in          Group/Subtotal on                                               
  2782.           use when the report is run.  Similarly, if you specify a subgroup
  2783.           field name, this must be a subfield in the primary index as well.
  2784.           An example may clear the air a little.
  2785.           
  2786.                Suppose you are producing a report of beauty contestants,
  2787.           and you want the report paginated by state and subdivided within
  2788.           the state by the city of residence of each contestant.  To
  2789.           produce such a report, you first would need to build a special
  2790.           index (**), give the index a name such as STATCITY, and  specify
  2791.           the fields to be indexed as STATE+CITY.  Whenever the report is
  2792.           run, that index must be the primary index. Then, in the report
  2793.           form, specify Group/subtotal on: STATE, Summary report only?                        Group/subtotal on: STATE  Summary report only?
  2794.           N, Eject after subtotal? Y, Group/subtotal heading: Contestant          N  Eject after subtotal? Y  Group/subtotal heading: Contestant
  2795.           state is , Subgroup/subsubtotal on CITY, Subgroup heading:          state is   Subgroup/subsubtotal on CITY  Subgroup heading:
  2796.           Contestant city is .  What happens if you forget to set the          Contestant city is                                         
  2797.           primary index to STATCITY?  When the report is run, WAMPUM                                                              WAMPUM
  2798.           assumes you know what you are doing.  So, as the report sifts
  2799.           through your data base, it will do just what you told it. 
  2800.           Whenever, the city of the contestant changes, the report will
  2801.           print a subheading of Contestant city is Los Angeles or whatever,                                Contestant city is Los Angeles             
  2802.           and when the state changes, the report will issue a page break
  2803.           and print a new page heading and group heading at the top of the
  2804.           next page saying Contestant state is Utah or whatever. However,                           Contestant state is Utah                      
  2805.           since you forgot to put the proper index in effect, the actual
  2806.           records in the data base will not be in STATE then CITY order. 
  2807.           Thus, you may get a page with one contestant from California,
  2808.           then a page with one from Utah, then another page with one from
  2809.           California, etc.  In short, you probably will get about a 200
  2810.           page report rather than the 5 page report expected.  As noted
  2811.           earlier, if you are a beginning report writer, skip this screen
  2812.           in the report writer until you own your own paper company.
  2813.           
  2814.                The meat of the coconut in creating report forms is the
  2815.           Field Contents screen.  This is the screen on which you tell the
  2816.           report generator which piece of information you want printed on
  2817.           the actual report.  For example, we want to print the beauty
  2818.           contestant's name, her hometown, state, birthday, and, of course,
  2819.           measurements.  Each piece of information is specified on a
  2820.           separate Field Contents screen (unless you are an expert).  When          ________                                                        
  2821.           you finish specifying one field of information to be output, you
  2822.           simply <PgDn> to get another screen.  This process continues
  2823.           until you have specified all of the pieces of information to be
  2824.           printed in the various columns of your report. Note that each
  2825.           screen asks for five pieces of information:
  2826.           
  2827.                          1.  CONTENTS                         1.  CONTENTS
  2828.                          2.  # decimal places  0                         2.  # decimal places  0
  2829.                          3.  Totals?  N                         3.  Totals?  N
  2830.                          4.  HEADER                         4.  HEADER
  2831.                          5.  WIDTH                         5.  WIDTH
  2832.           
  2833.                For purposes of our example, let's assume the finished
  2834.           report should output something like the following:
  2835.           
  2836.  
  2837.  
  2838.  
  2839.                                        - 40 -
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.           
  2847.           
  2848.           CONTESTANT'S NAME     HOMETOWN    STATE   BIRTHDAY  MEASUREMENTS          CONTESTANT'S NAME     HOMETOWN    STATE   BIRTHDAY  MEASUREMENTS
  2849.           -----------------     ----------  -----   --------  ------------          -----------------     ----------  -----   --------  ------------
  2850.           Betty Boop            Podunck     CA      09/27/68  38-22-36          Betty Boop            Podunck     CA      09/27/68  38-22-36
  2851.           Dolly Partin          Nashville   TN      09/27/45  48-28-38          Dolly Partin          Nashville   TN      09/27/45  48-28-38
  2852.           
  2853.                CONTENTS is asking for the legal field name of the field to               CONTENTS                                                   
  2854.           print in the current column of the report.  For experts, CONTENTS
  2855.           may also contain any legal dBASE expression. Columns of a report
  2856.           are built from left to right across the screen or page when a
  2857.           report is produced.  Since we want the contestant's name in the
  2858.           first column, we would specify FULLNAME as the field to print                                         FULLNAME                      
  2859.           assuming this was the name assigned to this field in our data
  2860.           base.   You can press the DOWN CURSOR or <ENTER> key to move down
  2861.           to the # decimal places field; however, the DOWN CURSOR is safer                 # decimal places                                         
  2862.           since another little bug sometimes assumes you're finished
  2863.           building your report when you press <ENTER>.
  2864.           
  2865.                Unless you have specified a numeric expression  for the                                           ___________________        
  2866.           CONTENTS, both the # decimal places field and the Totals? field                             # decimal places               Totals?      
  2867.           should be left alone.  If you are outputting numeric data, then
  2868.           the # decimal places field allows you to specify how many decimal              # decimal places                                             
  2869.           positions should be printed for this column of the report.  Enter
  2870.           a number and press the DOWN CURSOR.  Totals? allows you to                                               Totals?              
  2871.           specify whether you want the numeric expression totaled (and
  2872.           subtotaled) at breaks in the report and at the end of the
  2873.           report.  Note again that you cannot TOTAL anything except a
  2874.           numeric expression.  If you just want a COUNT of records, this is
  2875.           covered below separately.  Then, DOWN CURSOR to the HEADER field.
  2876.           
  2877.                HEADER is asking for the column heading to display for this               HEADER                                                     
  2878.           column of the report.  This is free-form text of your choosing. 
  2879.           It should convey to the reader of the report what the contents of
  2880.           this column of the report actually are.  The only precaution here
  2881.           is that the header typically should not be much wider in length
  2882.           than the maximum field width being displayed in this column. 
  2883.           Otherwise, you are just wasting space across the report since the
  2884.           WIDTH must be the wider of the field maximum width and the header
  2885.           width.  In the example above, type CONTESTANT'S NAME on the first                                             CONTESTANT'S NAME             
  2886.           header line, then press the DOWN CURSOR and type ----------------                                                           ----------------
  2887.           on the next line to simulate an underscore.  Use the DOWN CURSOR
  2888.           to move down to the WIDTH field.                              WIDTH       
  2889.           
  2890.                WIDTH is asking for the column width of this column of the               WIDTH                                                     
  2891.           report.  As noted above, this width should be the greater of the
  2892.           field maximum width or the longest line of the column headers.
  2893.           Note that the Clipper Report Generator loves the number 10.  This                        _______                                            
  2894.           is the default, and bug #3 is that when you edit a previous
  2895.           report, the report generator sometimes forgets the width you
  2896.           previously specified.  You may have to reenter it.
  2897.           
  2898.                Once you have entered the width desired, press <PgDn> and a
  2899.           second Field Contents Screen will appear.  Fill this one in for
  2900.           the next column of your report, then <PgDn> again.  Continue this
  2901.           process until you have completed all of the fields which you want
  2902.  
  2903.  
  2904.  
  2905.                                        - 41 -
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.           output in the report.  Then <PgDn> to another blank Field
  2913.           Contents Screen.  Press the <ESC> key to tell the report writer
  2914.           you are finished.  
  2915.           
  2916.                You will be asked whether you are finished.  Typing a Y
  2917.           saves the report form to disk.  Typing an N returns you to the
  2918.           top of the current Field Contents Screen.  Pressing <ESC> aborts
  2919.           the report creation process and does NOT save the report.
  2920.           
  2921.                What happens if you want to change something before you have
  2922.           first saved the report?  Simply press <PgUp> to move back through
  2923.           the screens you have already entered.  Then <PgDn> to return to
  2924.           your current place.
  2925.           
  2926.                Suppose you want to count the number of records output in
  2927.           the report.  This is perhaps the weakest link in both the dBASE
  2928.           report writer and the Clipper clone.  The easiest method for                                _______                               
  2929.           doing this is to include a final Field Contents Screen with the
  2930.           following specifications.  For the CONTENTS, type the number 1. 
  2931.           For DECIMALS, leave it at 0.  For TOTALS, type Y.  For the
  2932.           HEADER, type TOTAL and a second row of -----.  For width, type
  2933.           5.  This will tell WAMPUM to count the records as the report is                             WAMPUM                                      
  2934.           produced and print a total at the bottom.  It will also uglify
  2935.           your report by producing a column of 1's along the right margin
  2936.           of your report.
  2937.           
  2938.                Suppose you want to do some date calculations.  In the above
  2939.           example, suppose we want to compute the beauty contestant's age. 
  2940.           For the CONTENTS field, specify (DATE()-BIRTHDAY)/365.  Leave the                                          (DATE()-BIRTHDAY)/365            
  2941.           decimals at 0, and totals as N.  For HEADER, insert AGE on the                                                              AGE       
  2942.           first line and --- on the second.  For WIDTH, type 3.  This tells                         ---                                               
  2943.           WAMPUM to perform the following calculation each time a record          WAMPUM                                                        
  2944.           qualifies for the report and output the answer in this column. 
  2945.           Subtract the contestant's birthdate from today's date.  This
  2946.           yields a number.  Divide this number by 365 to get the AGE in
  2947.           years of the contestant.  Note the parentheses around the
  2948.           subtraction.  In algebra, multiplication and division take
  2949.           precedence over addition and subtraction.  This means that WAMPUM                                                                     WAMPUM
  2950.           would ordinarily attempt to perform the division before the
  2951.           subtraction.  Since you cannot divide a DATE field by a number,
  2952.           this would send WAMPUM in the OZONE level when the report was                          WAMPUM                                       
  2953.           run.  The parentheses tells WAMPUM to carry out the calculations
  2954.           in parentheses first before performing the division.  Since dBASE
  2955.           and WAMPUM can add and subtract dates, this will yield a numeric              WAMPUM                                                      
  2956.           value which then can be divided by 365.
  2957.           
  2958.                Suppose you want to output the contents of a MEMO field in a
  2959.           report.  A minor "bug" in the Clipper compiler caused WAMPUM                                        _______                       
  2960.           reports with a MEMO field to format strangely.  This now has been
  2961.           fixed through the addition of a new function: MEMOTRAN().  To
  2962.           output a MEMO field, enter the following expression for the field
  2963.           contents: MEMOTRAN(fieldname) where fieldname is the actual name                                              _________                                       MEMOTRAN(fieldname)                                                                                 _________                   
  2964.           of the MEMO field in your data base.  You may specify a column
  2965.           width of any length desired and WAMPUM will format the output                                          WAMPUM                       
  2966.           accordingly.  Again, special thanks to Nantucket for providing
  2967.           this "fix" at no expense to anyone.
  2968.  
  2969.  
  2970.  
  2971.                                        - 42 -
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.           
  2979.                The final thing to be careful of in creating reports is to
  2980.           make sure the total field widths specified for your report do not
  2981.           exceed the PAGE WIDTH specified when you set up the report.  A
  2982.           little math in advance will solve this problem.  Remember that
  2983.           WAMPUM always leaves a single space between columns of the          WAMPUM                                                    
  2984.           report.  This is in addition to the field widths you specify!
  2985.           
  2986.           
  2987.           3.1.10.1.3  Modifying Existing Report Formats
  2988.           
  2989.                To modify an existing report, select the R - Report Menu                                                        R - Report Menu
  2990.           option from the Main System Menu.  Look at the listing of reports
  2991.           which displays and write down the name of the one to be
  2992.           modified.  Then type an asterisk (*) as if you were creating a
  2993.           new report.  Press <PgDn>.  When WAMPUM prompts for the name of
  2994.           your new report, enter the OLD name and press <ENTER>.  The
  2995.           discussion above with respect to creating a new report applies as
  2996.           well to modifying an existing one.  As noted, be careful to check
  2997.           the defaults and make certain the Clipper Report Generator did                                            _______                     
  2998.           not reimpose its defaults rather than the values you specified. 
  2999.           You then can SAVE or ABORT saving the revised report just as was
  3000.           done in creating a new one.
  3001.           
  3002.           
  3003.           3.1.10.1.4  Outputting MEMO fields in Reports
  3004.           
  3005.                MEMO fields may be formatted as columns in a report just
  3006.           like a character string except for the syntax of the CONTENTS
  3007.           expression.  With character fields, you typically specify the
  3008.           actual name of the field to be output.  With a MEMO field, use
  3009.           the following syntax where COMMENTS is the actual field name                                     ________                         
  3010.           given to the MEMO field you wish to output in the report:
  3011.           
  3012.                               MEMOTRAN(COMMENTS)                                       ________                               MEMOTRAN(COMMENTS)                                       ________ 
  3013.           
  3014.                MEMOTRAN is a Clipper function which fixes a bug in the                             _______                                  
  3015.           Clipper report writing software.  Using the above syntax will          _______                                                      
  3016.           permit a MEMO field to be produced in a report column of
  3017.           virtually any width desired.  Simply specify a field width of
  3018.           your choice and the MEMOTRAN function will assure that the text
  3019.           in the MEMO field is word-wrapped to fit in the specified width.
  3020.           
  3021.           
  3022.           3.1.10.2  LABELS
  3023.           
  3024.           3.1.10.2.1  Overview
  3025.           
  3026.                WAMPUM Labels are designed using the Clipper LABEL                                                    ________                    WAMPUM                                                                                                ________     
  3027.           Generator, which Nantucket generously has allowed us to
  3028.           distribute without charge.  WAMPUM requires 420K to access the                                      WAMPUM                            
  3029.           label generator program from the Main System Menu. Before you can
  3030.           create new label forms or revise old ones, you need to make sure
  3031.           the program LABEL.EXE is located in a directory supported by your
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.                                        - 43 -
  3038.  
  3039.  
  3040.  
  3041.  
  3042.  
  3043.  
  3044.           DOS PATH command.  This will assure that WAMPUM can access the                                                   WAMPUM               
  3045.           label generator whenever you want to design or redesign a label
  3046.           form.  
  3047.           
  3048.                You should also be aware that beginning with DOS 3.0, a DOS
  3049.           program named LABEL.COM is provided to rename volume labels. 
  3050.           Make certain that your DOS PATH checks the subdirectory
  3051.           containing Clipper's LABEL.EXE program before checking the DOS                     _______                                            
  3052.           subdirectory containing LABEL.COM.  Otherwise, WAMPUM will                                                         WAMPUM     
  3053.           execute the wrong program when you attempt to create or revise
  3054.           label forms.
  3055.           
  3056.                Before designing a label, you will always want to print out
  3057.           a listing of the file structure with which you will be working. 
  3058.           Pick the S - Select Utilities option and specify T or Y for the                   S - Select Utilities                                  
  3059.           List File Structure option.  Then type Y when asked whether to
  3060.           print the structure listing.
  3061.           
  3062.                The Clipper Label Generator is virtually a clone of the                   _______                                            
  3063.           dBASE III label writer which is accessed in dBASE with the
  3064.           command CREATE LABEL filename or MODIFY LABEL filename.  Thus,                  CREATE LABEL filename    MODIFY LABEL filename        
  3065.           anyone who is generally familiar with the dBASE III method of
  3066.           designing label forms will have no problem doing the same with
  3067.           WAMPUM.          WAMPUM 
  3068.           
  3069.                A label form is a file which contains instructions telling
  3070.           WAMPUM which pieces of information you want to extract from a          WAMPUM                                                       
  3071.           data base and place on labels.  Note that we said "which pieces
  3072.           of information" meaning which fields rather than which records. 
  3073.           This is an important distinction since neither WAMPUM labels nor                                                         WAMPUM           
  3074.           dBASE labels control which records print on a label.  That is
  3075.           controlled with record selection using the S - Select Utilities                                                     S - Select Utilities
  3076.           in WAMPUM.  You might more accurately refer to label forms as a             WAMPUM                                                      
  3077.           formatting template through which you "pour" information from a
  3078.           data base.  
  3079.           
  3080.                All WAMPUM labels must have a DOS-standard file name with no                   WAMPUM                                                  
  3081.           file extension.  As is true with dBASE, WAMPUM supplies the file                                                  WAMPUM                  
  3082.           extension of .LBL with all label forms.
  3083.           
  3084.                The L - LABELS for Mail option on the WAMPUM Main System                   L - LABELS for Mail               WAMPUM            
  3085.           Menu provides three capabilities to the user.  First, you can run
  3086.           any existing label form whether created with the Clipper Label                                                           _______      
  3087.           Generator or with the dBASE III or dBASE III Plus label maker. 
  3088.           Second, you can create new label forms using the Clipper Label                                                           _______      
  3089.           Generator.  Finally, you can revise existing label forms using
  3090.           the Clipper Label Generator.  The labels need not have been              _______                                                
  3091.           created originally with the Clipper Label Generator.                                      _______                 
  3092.           
  3093.                How to run labels is explained in the end-user section of
  3094.           this User's Guide.  The following two sections address how to
  3095.           create new label forms and revise old ones.
  3096.           
  3097.           
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.                                        - 44 -
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.           3.1.10.2.2  Creating A New Label Format
  3111.           
  3112.                After printing a listing of the file structure with which
  3113.           you will be working, the next step in creating a new label form
  3114.           is to select the L - Labels for Mail option from the WAMPUM Main                           L - Labels for Mail                 WAMPUM     
  3115.           System Menu.  When prompted for the name of the label form to
  3116.           run, type an asterisk (*) and press the <PgDn> key.  Then enter
  3117.           the name you wish to assign to this new label form.  Do not enter
  3118.           a file extension since WAMPUM automatically assigns .LBL as the                                 WAMPUM                                  
  3119.           file extension in keeping with the dBASE naming convention. 
  3120.           WAMPUM then will run the Clipper Label Generator assuming you                                   _______                                       WAMPUM                                                                                          _______                             
  3121.           have sufficient memory to support it and assuming WAMPUM can find                                                            WAMPUM         
  3122.           LABEL.EXE in the DOS PATH before finding DOS's LABEL.COM program.                                    ______                                 
  3123.           
  3124.                As is true with the dBASE III label writer, the Clipper                                                               _______
  3125.           Label Generator divides a label form into two parts:
  3126.           
  3127.                          1.  Label Settings                         1.  Label Settings
  3128.           
  3129.                          2.  Label Contents                          2.  Label Contents 
  3130.           
  3131.                There are six items of information which can be set to
  3132.           specify how the labels should be produced.  These include the
  3133.           following with their default settings:
  3134.           
  3135.                          1.  Width of Label            35                         1.  Width of Label            35
  3136.                          2.  Height of Label            5                         2.  Height of Label            5
  3137.                          3.  Left Margin                0                         3.  Left Margin                0
  3138.                          4.  Lines Between Labels       1                         4.  Lines Between Labels       1
  3139.                          5.  Spaces Between Labels      0                         5.  Spaces Between Labels      0
  3140.                          6.  No. of Labels Across       1                         6.  No. of Labels Across       1
  3141.           
  3142.           
  3143.                Width of Label refers to the maximum width of any text entry               Width of Label                                              
  3144.           on any label produced.  Height of Label means the maximum number                                  Height of Label                         
  3145.           of lines per label.  Left Margin is the starting column position                               Left Margin                                
  3146.           for the left-most label.  Lines Between Labels specifies the                                    Lines Between Labels              
  3147.           number of blank lines between each completed label. Spaces                                                              Spaces
  3148.           Between Labels is the number of blank columns horizontally          Between Labels                                            
  3149.           between labels when two or more are produced across the page or
  3150.           screen.  Number of Labels Across allows you to specify how many                   Number of Labels Across                               
  3151.           columns of labels will be printed across the page (up to 5).
  3152.           
  3153.                The main consideration to keep in mind in producing labels
  3154.           is the following.  There is no pagination control for labels. All
  3155.           label forms assume an unending supply of continuous-form label
  3156.           stock in your printer.  If you are using a laser printer, then
  3157.           printer codes will have to be used to set top of form and page
  3158.           length to match the label format desired with one exception. 
  3159.           WAMPUM knows the format for 33-UP LABELS (11 labels per page with          WAMPUM                                                           
  3160.           3 across) if you use the following settings for the label form
  3161.           and specify FONT7 with the HPLASERA printer table:
  3162.           
  3163.           
  3164.           
  3165.           
  3166.  
  3167.  
  3168.  
  3169.                                        - 45 -
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.                          1.  Width of Label            24                         1.  Width of Label            24
  3177.                          2.  Height of Label            4                         2.  Height of Label            4
  3178.                          3.  Left Margin                0                         3.  Left Margin                0
  3179.                          4.  Lines Between Labels       2                         4.  Lines Between Labels       2
  3180.                          5.  Spaces Between Labels      4                         5.  Spaces Between Labels      4
  3181.                          6.  No. of Labels Across       3                         6.  No. of Labels Across       3
  3182.           
  3183.                Once you have entered the label settings desired, press
  3184.           <PgDn> to move to the Label Contents Screen.  In this screen, you
  3185.           enter field names to be produced on the labels much as was done
  3186.           on the Field Contents Screen with Report Forms.  Then press <ESC>
  3187.           when you have completed filling out the field expressions which
  3188.           should appear on each line of the label.  You will be prompted to
  3189.           answer whether to save the new label format. A sample of field
  3190.           expressions appears next for a typical mailing label.  All of the
  3191.           names in BOLD are assumed to be the actual field names:                   BOLD                                          
  3192.           
  3193.           
  3194.                1    TRIM(FIRSTNAME) + " " + TRIM(LASTNAME)                         FIRSTNAME               LASTNAME 
  3195.                2    ADDRESS1                    ADDRESS1
  3196.                3    ADDRESS2                    ADDRESS2
  3197.                4    TRIM(CITY) + ", " + TRIM(STATE) + " " + ZIPCODE                         CITY                STATE          ZIPCODE
  3198.           
  3199.           
  3200.           3.1.10.2.3  Modifying An Existing Label Format
  3201.           
  3202.                To modify an existing label format, select the L - Labels                                                              L - Labels
  3203.           for Mail option from the Main System Menu.  Look at the listing          for Mail                                                       
  3204.           of labels which displays and write down the name of the one to be
  3205.           modified.  Then type an asterisk (*) as if you were creating a
  3206.           new label form.  Press <PgDn>.  When WAMPUM prompts for the name                                               WAMPUM                     
  3207.           of your new label, enter the OLD name and press <ENTER>.  The
  3208.           discussion above with respect to creating a new label applies as
  3209.           well to modifying an existing one.  As noted, be careful to check
  3210.           the defaults and make certain the Clipper Label Generator did not                                            _______                        
  3211.           reimpose its defaults rather than the values you specified.  You
  3212.           then can SAVE or ABORT saving the revised label form just as was
  3213.           done in creating a new one.  Note, you will always have to reset
  3214.           the label settings since the Clipper Label Generator always                                       _______                       
  3215.           overrides previous settings.
  3216.           
  3217.           
  3218.           3.1.10.3  FORM LETTERS
  3219.           
  3220.           3.1.10.3.1  Overview
  3221.           
  3222.                One of the most critical limitations of dBASE III has been
  3223.           its lack of a convenient "mail merge" interface which would allow
  3224.           selected data to be extracted from a data base and inserted into
  3225.           form letters.  WAMPUM now provides this missing link through its                         WAMPUM                                           
  3226.           built-in Form Letter generator.
  3227.           
  3228.                Actually, a WAMPUM form letter is nothing more than a                           WAMPUM                                   
  3229.           standard dBASE III data base with a single field designated as
  3230.           LINE1.  In executing a form letter merge through either the T -                                                                      T -
  3231.  
  3232.  
  3233.  
  3234.  
  3235.                                        - 46 -
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.           Form Letter Menu or via W - Wampum Preformatted Output, WAMPUM          Form Letter Menu        W - Wampum Preformatted Output  WAMPUM
  3243.           simply extracts data from your data base and merges it with the
  3244.           text contained in the form letter data base file you specify.
  3245.           
  3246.                WAMPUM automatically handles word wrapping as part of the               WAMPUM                                                   
  3247.           merge process.  In addition, the Form Letter Generator includes
  3248.           powerful programming functions which allow you to test the
  3249.           contents of fields in a data base and branch to various
  3250.           paragraphs of the form letter depending upon the contents of the
  3251.           data base.  The current version of WAMPUM assumes that you will                                             WAMPUM                      
  3252.           be outputting your form letters on 8-1/2 x 11 paper using 10
  3253.           pitch type.  Future enhancements may permit these to be adjusted.
  3254.           
  3255.                The following sections describe how to create an empty form
  3256.           letter as well as how to construct the form letter data base once
  3257.           the file has been created.  The end-user section of this Guide
  3258.           describes the process of merging data into a form letter file.
  3259.           
  3260.           
  3261.           3.1.10.3.2  Creating a New Form Letter File
  3262.           
  3263.                To create a new form letter, select T - Form Letter Menu                                                   T - Form Letter Menu
  3264.           from the Main System Menu.  When prompted for the name of the
  3265.           form letter to run, type an asterisk (*) and press <PgDn>.  You
  3266.           then will be prompted to name the new form letter.  This name
  3267.           must start with T- and then up to a 6 character name.  WAMPUM                          T-                                     WAMPUM
  3268.           will add the .DBF file extension and build the form letter file.
  3269.           
  3270.           
  3271.           3.1.10.3.3  Building Data in Form Letter File
  3272.           
  3273.                To actually build the form letter, use F - File Select to                                                      F - File Select   
  3274.           select the form letter file with which you want to work, just as
  3275.           you would select any other data base file to use.
  3276.           
  3277.                Before actually entering data for the form letter, some
  3278.           explanation of how form letters are constructed and how they are
  3279.           output will assist in your design.
  3280.           
  3281.                When WAMPUM generates form letters, it reads the form letter                    WAMPUM                                                 
  3282.           file to get the text for the form letter.  All leading and
  3283.           trailing spaces in each record are stripped off when WAMPUM                                                               WAMPUM
  3284.           builds the text to print.  WAMPUM then reads the next record in
  3285.           the form letter file and appends it with a single leading space
  3286.           to what was in the previous record.  For example, each field in a
  3287.           form letter record may contain up to 136 characters.  Suppose the
  3288.           the following two records were in the file:
  3289.           
  3290.                    Hello there,                   Hello there,
  3291.                      Cutie!                     Cutie!
  3292.           
  3293.                When this form letter was printed, the text would read:
  3294.           
  3295.           Hello there, Cutie!          Hello there, Cutie!
  3296.           
  3297.  
  3298.  
  3299.  
  3300.  
  3301.                                        - 47 -
  3302.  
  3303.  
  3304.  
  3305.  
  3306.  
  3307.  
  3308.                Note that there would be no indentation from the left
  3309.           margin, and all other spaces would be trimmed except the one
  3310.           space added between the two records.  
  3311.           
  3312.                How do you get spaces when you really want them?  This is
  3313.           done by inserting CHR(255) on the left margin of a record.  Then
  3314.           it can be followed by as many spaces as desired.  To insert this
  3315.           character, hold down the ALT key and type 255 with the numeric
  3316.           keypad.
  3317.           
  3318.                WAMPUM Form Letters also may contain markers which tell               WAMPUM                                                 
  3319.           WAMPUM to extract or evaluate information in the primary data
  3320.           base when the form letter is merged.  The main rule to remember
  3321.           insofar as field data expressions are concerned is that you may
  3322.           have only one such expression in each record of a form letter                    ___                                                
  3323.           file.
  3324.           
  3325.                A FIELD DATA EXPRESSION always begins and ends with //.  In                 FIELD DATA EXPRESSION                             //     
  3326.           its simplest form, an expression such as //LASTNAME// would tell                                                   //LASTNAME//           
  3327.           WAMPUM to extract the contents of the LASTNAME field in the          WAMPUM                                                     
  3328.           current record and insert it into the form letter at this place. 
  3329.           The beginning and ending //'s must be part of the same record.
  3330.           
  3331.                With some Field Data Expressions, you may block off a
  3332.           section of text in the form letter which will be affected by the
  3333.           evaluation of the expression itself.  For instance, if a
  3334.           particular field is blank in the data base, WAMPUM form letters
  3335.           may contain a code telling WAMPUM to omit all of the text which
  3336.           has been blocked off.  TEXT MARKERS consist of @@ at the                                 TEXT MARKERS            @@       
  3337.           beginning and ending of the affected text.  Note that these
  3338.           markers may not extend beyond a single record.  Thus, you cannot                      ___                                                 
  3339.           have one pair of @'s in record 5 and the other pair in record 6.
  3340.           An example of the syntax would be the following.  Suppose you
  3341.           want to thank people for contributing to your reelection
  3342.           campaign.  In the data base is a field CONTRIBDT which will be                                                 CONTRIBDT              
  3343.           empty if no contribution has been received.  The record entry in
  3344.           the form letter might say:
  3345.           
  3346.           @@Thanks for being such a great supporter!//*CONTRIBDT//@@          @@Thanks for being such a great supporter!//*CONTRIBDT//@@
  3347.           
  3348.                This entry means if CONTRIBDT is not blank, then print the
  3349.           text: Thanks for being such a great supporter!  Otherwise, leave
  3350.           this sentence out of the form letter entirely.
  3351.           
  3352.                The following section describes all FIELD DATA EXPRESSIONS
  3353.           implemented as of version 2.2 of WAMPUM.                                           WAMPUM 
  3354.           
  3355.                Another difference in WAMPUM Form Letters and standard text                                     WAMPUM                               
  3356.           is that WAMPUM needs to know when you really do want to end a                  WAMPUM                                               
  3357.           paragraph.  This is referred to as a hard carriage return with
  3358.           many word processing packages.  WAMPUM interprets a blank record                                          WAMPUM                          
  3359.           in the form letter file or a record beginning with a tilde (~) as
  3360.           a hard carriage return.  Note that if you want a hard return in a
  3361.           form letter and a blank line between paragraphs, you will need to
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.                                        - 48 -
  3368.  
  3369.  
  3370.  
  3371.  
  3372.  
  3373.  
  3374.           insert two blank records in the form letter file or two records                 ___                                                     
  3375.           beginning with a tilde.  All text following a tilde is ignored if
  3376.           it is the first character on the line.
  3377.           
  3378.                Finally, remember that WAMPUM form letters are built on the                                      WAMPUM                              
  3379.           fly when you actually run the form letter program.  Make certain
  3380.           that you end all form letter files with at least one blank record
  3381.           and preferably two.  This will assure that the form letter buffer
  3382.           is purged before the next form letter is produced.
  3383.           
  3384.           
  3385.           3.1.10.3.4  WAMPUM Field Data Expressions
  3386.           
  3387.                What follows is a listing of the syntax for various FIELD
  3388.           DATA EXPRESSIONS together with an example of each expression. 
  3389.           The best way to get a feel for using WAMPUM Form Letters is to
  3390.           build a few.  It provides more power and flexibility in this area
  3391.           than any commercial product on the market.  Like any programming
  3392.           language, however, it takes a little getting used to.
  3393.           
  3394.           //LASTNAME//   Allows imbedding a character, numeric, or date          //LASTNAME//                                                 
  3395.                          field within a form letter record.  It would
  3396.                          output Jones if Jones were in the LASTNAME field.                                _____                                     
  3397.                          Note: if a date field, it outputs the date in the
  3398.                          format May 21, 1986 if entry is 05/21/86.
  3399.           
  3400.           @@Thanks //LASTNAME//.@@ Allows imbedding a CHARACTER FIELD with          @@Thanks //LASTNAME//.@@                                        
  3401.                          a string of text which will print only if the
  3402.                          field is not blank.  It would output Thanks Jones.                                                              _____________
  3403.                          if Jones were in the LASTNAME field.
  3404.           
  3405.           @@Filed.//*FILINGDT//@@  Tests whether a particular character,          @@Filed.//*FILINGDT//@@                                       
  3406.                          numeric, or date field is not blank or whether a
  3407.                          logical field is True.  In either case, if True
  3408.                          the output would be Filed. Otherwise, nothing                                             ______                   
  3409.                          would be printed.
  3410.           
  3411.           @@Not filed.//#FILINGDT//@@   Just the opposite of the above.          @@Not filed.//#FILINGDT//@@                                  
  3412.                          If the character, numeric, or date field is empty
  3413.                          or if the logical field is False, the expresion is
  3414.                          printed. Otherwise, nothing would be printed.
  3415.           
  3416.           @@A new baby!//?PREGNANT//@@  Similar to above.  Used only with          @@A new baby!//?PREGNANT//@@                                   
  3417.                          a logical field.  If logical field is True, the
  3418.                          expression is printed.
  3419.           
  3420.           @@So you're 30.//!AGE=30//@@  Allows any dBASE III expression as          @@So you're 30.//!AGE=30//@@                                    
  3421.                          the test for whether the text should be printed. 
  3422.                          If the test is True, the text is printed.  Make
  3423.                          certain that both sides of the expression are of
  3424.                          the same data type.  This example would print
  3425.                          So you're 30! if the AGE numeric field = 30.                         _____________                               
  3426.           
  3427.           // AGE=30//    This is the syntax for a GOTO using the WAMPUM          // AGE=30//                                                  
  3428.                          form letter generator.  Note the SPACE at the
  3429.                          beginning of the expression which means, IF the
  3430.  
  3431.  
  3432.  
  3433.                                        - 49 -
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.                          expression is True, SKIP to the next record
  3441.                          beginning with a SPACE character.  If you want to
  3442.                          skip past a required carriage return record, make
  3443.                          certain that the record begins with a tilde and
  3444.                          not with a SPACE since blank records are assumed
  3445.                          to be those containing all spaces.
  3446.           
  3447.           //+SAMPLE.DOC//     With lengthy pieces of text with no embedded          //+SAMPLE.DOC//                                                 
  3448.                          data, it is often easier to type them into a plain
  3449.                          ASCII document using a text editor.  You then can
  3450.                          merge them into a WAMPUM form letter with the
  3451.                          syntax shown which says read in the SAMPLE.DOC                                                 ______________________
  3452.                          text file at this point in the form letter.  Note          _________________________________________________________       
  3453.                          that this command should appear in a record by
  3454.                          itself with no other text.
  3455.           
  3456.           //=DTOC(DATE())//   There may be times when you just want to          //=DTOC(DATE())//                                           
  3457.                          reformat some data directly out of the data base.
  3458.                          The = operand allows this to be done with any                                                                   ___                             =                                                                                                           ___
  3459.                          dBASE expression so long as it evaluates to a                                          ____________________________
  3460.                          STRING EXPRESSION when it is processed.          ________________________________                      
  3461.           
  3462.           
  3463.           3.1.11  Building Function Key Macros (KEYS.DBF)
  3464.           
  3465.                As an aid in data entry intensive applications, WAMPUM                                                               WAMPUM
  3466.           provides the capability to define up to 39 keyboard macros which
  3467.           may be invoked by the end-user simply by pressing a function key.
  3468.           As is true with WAMPUM applications generally, these keyboard                          WAMPUM                                       
  3469.           macros are application specific.  This simply means that a set of
  3470.           keyboard macros may be defined for each application in each new
  3471.           directory created on the hard disk.
  3472.           
  3473.                The name of the file which stores the macros is KEYS.DBF
  3474.           which is a standard dBASE III data base file.  It is created
  3475.           automatically whenever WAMPUM is first run in a new subdirectory.                                 WAMPUM                                    
  3476.           To build the table of macro definitions, follow the steps below. 
  3477.           
  3478.                First, select the KEYS.DBF file as the file with which you
  3479.           want to work by picking the F - File Select option on the Main                                      F - File Select                   
  3480.           Menu.  Enter the file name KEYS when prompted to do so.  When the
  3481.           Main Menu reappears, the bottom line of the screen should say:
  3482.           
  3483.                                    FILE: KEYS                                   FILE: KEYS
  3484.           
  3485.                Next, you will want to figure out what keystrokes you want
  3486.           to store under which function keys.  The following function keys
  3487.           are available for use:
  3488.           
  3489.                                    F2 - F10                                   F2 - F10
  3490.                                    Shift F1 - Shift F10                                   Shift F1 - Shift F10
  3491.                                    Ctrl F1 - Ctrl F10                                   Ctrl F1 - Ctrl F10
  3492.                                    Alt F1 - Alt F10                                   Alt F1 - Alt F10
  3493.           
  3494.                You will note that this is all function key combinations
  3495.           except for F1 which is reserved by WAMPUM as the HELP key.                                             WAMPUM                 
  3496.  
  3497.  
  3498.  
  3499.                                        - 50 -
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.           
  3507.                Record numbers in the KEYS file match the function keys by
  3508.           key number.  See the table below:
  3509.           
  3510.                          Function Keys            Record Numbers                         Function Keys            Record Numbers
  3511.                          --------------------     --------------
  3512.                          F2 - F10                 Rec #  2 - 10                         F2 - F10                 Rec #  2 - 10
  3513.                          Shift F1 - Shift F10     Rec # 11 - 20                         Shift F1 - Shift F10     Rec # 11 - 20
  3514.                          Ctrl F1 - Ctrl F10       Rec # 21 - 30                         Ctrl F1 - Ctrl F10       Rec # 21 - 30
  3515.                          Alt F1 - Alt F10         Rec # 31 - 40                         Alt F1 - Alt F10         Rec # 31 - 40
  3516.           
  3517.                Thus, whatever keystrokes are entered in record 5 of the
  3518.           KEYS file will automatically be assigned to function key F5. 
  3519.           Those in record 40 will be assigned to function key ALT-F10.  Any
  3520.           record in the KEYS.DBF file which is blank will be ignored.
  3521.           
  3522.                There are two cardinal rules to remember in entering data in
  3523.           the records of the KEYS file.  (1) Record 1 of the KEYS file is                                         ________________________________
  3524.           always ignored since it corresponds to the HELP function key, F1.          _________________________________________________________________
  3525.           (2)  Every entry in the KEYS file must equate to a CHARACTER          ____________________________________________________________
  3526.           STRING when evaluated by WAMPUM.          _______________________________                                    WAMPUM           _______________________________ 
  3527.           
  3528.                The first rule is only logical.  Since F1 is reserved for
  3529.           HELP, the corresponding record in the KEYS file is ignored. 
  3530.           Whatever is entered in this record won't matter because it is
  3531.           ignored.  Note that you will have to ADD a first record which
  3532.           automatically will be record 1.  Simply press <ENTER> to save it
  3533.           and create record 2 which can be used.
  3534.           
  3535.                The second rule is critical because if it is violated you
  3536.           will get run-time errors the next time WAMPUM is started.  If                                                 WAMPUM                
  3537.           this happens, simply type I to ignore each error (which means
  3538.           that function key will not be set), then edit the records causing
  3539.           the problems following the steps outlined above.
  3540.           
  3541.                Translated into dBASE III lingo, each record in the KEYS
  3542.           file must be a character string.  If it is simply character data,
  3543.           you meet this requirement by enclosing the data in double or
  3544.           single quotes.  If you have single quotes in the string, then
  3545.           enclose the string in double quotes and vice versa.
  3546.           
  3547.                You can also use dBASE III functions and special WAMPUM                                                                WAMPUM
  3548.           functions to create macros so long as the expression evaluates to
  3549.           a string.  Here are a few examples to get you started:
  3550.           
  3551.                DTOC(DATE()) would store today's date as a macro in the               DTOC(DATE())                                           
  3552.           following format: 10/10/86.
  3553.           
  3554.                FULLDATE(DATE()) would store today's date as a macro in the               FULLDATE(DATE())                                           
  3555.           following format: October 10, 1986.
  3556.           
  3557.                DTOC(DATE()+30) would store today's date + 30 days.               DTOC(DATE()+30)                                    
  3558.           
  3559.                CDOW(DATE()) would store the day of the week in a macro in               CDOW(DATE())                                              
  3560.           the following format: Tuesday.
  3561.           
  3562.  
  3563.  
  3564.  
  3565.                                        - 51 -
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.                STR(YEAR(DATE()),4) would store the year as a string in the               STR(YEAR(DATE()),4)                                        
  3573.           following format: 1986.
  3574.           
  3575.                WEEKDAY(DATE()+30) would store the date 30 days from today               WEEKDAY(DATE()+30)                                        
  3576.           rolled over to Monday if it hits on weekend in format: 10/10/86.
  3577.           
  3578.                Again, the important thing to remember is that character
  3579.           text must be enclosed in quotes, and data other than character
  3580.           data must be converted into a string using one of the dBASE III
  3581.           or WAMPUM conversion functions.             WAMPUM                      
  3582.           
  3583.                Finally, these keyboard macros will not take effect until
  3584.           the next time WAMPUM is run from DOS.  They will be loaded on                        WAMPUM                                         
  3585.           each subsequent running of the program unless changed. Developers
  3586.           should be careful not to store a file named KEYS.DBF in the DOS
  3587.           PATH unless you intend to invoke the macros contained therein
  3588.           whenever an application starts and a file named KEYS.DBF cannot
  3589.           be found in the default directory.
  3590.           
  3591.           
  3592.           3.1.12  Building Edit Checks (EDIT.DBF)
  3593.           
  3594.                As an aid in data entry accuracy, WAMPUM provides the                                                 WAMPUM             
  3595.           capacity to design custom edit checks for each WAMPUM
  3596.           application.  As was true with keyboard macros, a set of edit
  3597.           checks may be defined for each application in each new directory
  3598.           created on the hard disk.
  3599.           
  3600.                The name of the file which stores the edit checks is
  3601.           EDIT.DBF which is a standard dBASE III data base file.  It is
  3602.           created automatically whenever WAMPUM is first run in a new                                         WAMPUM                      
  3603.           subdirectory. To build the table of edit checks, follow the steps
  3604.           below. 
  3605.           
  3606.                First, select the EDIT.DBF file as the file with which you
  3607.           want to work by picking the F - File Select option on the Main                                      F - File Select                   
  3608.           Menu.  Enter the file name EDIT when prompted to do so.  When the
  3609.           Main Menu reappears, the bottom line of the screen should say:
  3610.           
  3611.                                    FILE: EDIT                                   FILE: EDIT
  3612.           
  3613.                Next, you will want to figure out what edit checks you want
  3614.           to develop for the particular application.  For some
  3615.           applications, you may want to assure that a data entry field is
  3616.           never left blank.  For others, you may want to assure that a
  3617.           duplicate key is never entered.  Finally, you may want to assure
  3618.           that an entry is contained in a table of valid entries.  None of
  3619.           these checks are possible in dBASE III without substantial custom
  3620.           programming.  WAMPUM provides this capability with a few minutes
  3621.           work. 
  3622.           
  3623.                The EDIT file structure consists of two fields: EDITTEST and
  3624.           ERRMSG.  The theory behind WAMPUM edit checks is a simple one.                                      WAMPUM                              
  3625.           Once you "turn on" the edit checks for use against a particular
  3626.           file, WAMPUM automatically tests newly added records as well as                WAMPUM                                                   
  3627.           updated existing records to make certain that they do NOT violate
  3628.  
  3629.  
  3630.  
  3631.                                        - 52 -
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.           any of the error conditions (EDITTESTs) you have specified in the
  3639.           EDIT file. The checks are only run when new records are added to
  3640.           a data base or existing records are changed.  For each error
  3641.           condition identified, WAMPUM will display an error message                                WAMPUM                              
  3642.           (ERRMSG) and then permit the end-user to fix the problems.  The
  3643.           end-user cannot SAVE the record with errors without correcting
  3644.           them.  The end-user may <ESC>ape from a data entry screen without
  3645.           invoking WAMPUM's edit checking.                   WAMPUM                 
  3646.           
  3647.                Since developers typically work with several files in
  3648.           creating a new application, there are some instances in which you
  3649.           would not want the EDIT CHECKS to occur.  Most importantly, when
  3650.           the primary data base is not being used, you would not want to
  3651.           invoke a series of edit checks designed to check primary data
  3652.           base information.  This is handled in a simple way.  WAMPUM                                                               WAMPUM
  3653.           always reads the EDITTEST field entry in the first record of the
  3654.           EDIT.DBF to ascertain the name of the file to be checked.  If
  3655.           this entry does not match IN UPPER CASE the name of the current
  3656.           file in use, the edit checks are turned off.  Stated somewhat
  3657.           differently, the EDITTEST field of Record 1 of EDIT.DBF is                       _____________________________________________
  3658.           reserved to hold the UPPER CASE name of the data base to be edit          ________________________________________________________________
  3659.           checked.  Thus, in the case of our example, the entry in Record 1          ________                                                         
  3660.           of EDIT.DBF should say ACCOUNTS.  If you forget to enter the name                                 ACCOUNTS                                  
  3661.           of the data base file to be checked in record 1, then obviously
  3662.           the edit checks specified will never be invoked!
  3663.           
  3664.                There are three other things to keep in mind in developing
  3665.           your edit checks.  First, edit checks must be dBASE III or WAMPUM                                                                     WAMPUM
  3666.           expressions which can be evaluated as True or False.  Second, if
  3667.           the expression in EDITTEST is true, the error message in ERRMSG
  3668.           is triggered.  In other words, you are building expressions which
  3669.           identify when an error condition occurs rather than the other way
  3670.           around.  Third, and most importantly, if you wish to evaluate
  3671.           data entered in a particular field, you do NOT use the fieldname                                              ____________________________
  3672.           to test for an error.  Instead you use the field's sequential          _____________________________________________________________
  3673.           number in the data base in conjunction with an array name          _________________________________________________________
  3674.           FLDDATA[].  The next paragraph will clear up any confusion you          _________                                                     
  3675.           are momentarily experiencing.
  3676.           
  3677.                Since you need to know a field's position in the file
  3678.           structure in order to develop edit checks, your first step should
  3679.           be to print out the file structure of the file which will be
  3680.           checked.  Pick the S - Select Utilities option after making                             S - Select Utilities                    
  3681.           certain that the correct file is in use.  Change the List File                                                               List File
  3682.           Structure option to T or Y, then answer Y when prompted for          Structure                                                  
  3683.           whether the structure should be printed.  This will give you the
  3684.           list of fields in the data base.  Note that the left column shows
  3685.           the field's NUMBER in the structure.  Let us assume that the
  3686.           LASTNAME field is field number 1.  An appropriate edit check to
  3687.           assure that the LASTNAME field was not left blank would read as
  3688.           follows: EMPTY(FLDDATA[1]) or in standard dBASE III parlance, you                   EMPTY(FLDDATA[1])                                       
  3689.           could say FLDDATA[1]=SPACE(20) assuming the field's width was 20                    FLDDATA[1]=SPACE(20)                                  
  3690.           characters.  One of the above entries should be entered as the
  3691.           EDITTEST entry in the EDIT file.  The ERRMSG field entry might
  3692.           say something like this: The LASTNAME field cannot be left                                   The LASTNAME field cannot be left
  3693.           BLANK.  Whenever the EDITTEST record evaluates to TRUE, meaning          BLANK.                                                         
  3694.  
  3695.  
  3696.  
  3697.                                        - 53 -
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.           FLDDATA[1] is blank, then the ERRMSG would be displayed.  The                                                                    ___
  3705.           important thing to remember is to use FLDDATA[1] and not LASTNAME          _________________________________________________________________
  3706.           in identifying the field to be checked!  Note that you also can          _______________________________________                        
  3707.           check one field against another in the same data entry screen. 
  3708.           For example, assume there were two fields in the data base as
  3709.           follows:
  3710.           
  3711.                     1    TRANSCODE      Character      8
  3712.                     2    TRANSDATE      Date           8
  3713.           
  3714.           Let's also assume that the format of the TRANSCODE entries is of
  3715.           the form: 86-12345 where 86 identifies the year of the trans-
  3716.           action. One edit check you probably would want to perform in a
  3717.           situation such as this is to make sure the first two digits of
  3718.           the TRANSCODE matched the year in the TRANSDATE field.  Here is
  3719.           one possible way to handle that:
  3720.           
  3721.                     SUBSTR(FLDDATA[1],1,2)<>SUBSTR(DTOC(FLDDATA[2]),7,2)                    SUBSTR(FLDDATA[1],1,2)<>SUBSTR(DTOC(FLDDATA[2]),7,2)
  3722.           
  3723.           Note in the example that the relationship must be coded so that
  3724.           when it is TRUE, the error message displays.  Thus, we want to
  3725.           code it in such a way that when the first two characters of the                                     ____________________________________
  3726.           TRANSCODE do not match the year in the TRANSDATE, the expression          ________________________________________________________________
  3727.           is True and hence the error message is given.  Note also that the          ____________________________________________                     
  3728.           expressions on both sides of the relational operator must be of
  3729.           the same type.  In this case, both are character strings.
  3730.           
  3731.                Finally, it should be noted that these EDIT CHECKS will not
  3732.           take effect until the next time WAMPUM is run with the                                          WAMPUM                
  3733.           appropriate file in use.  They will be loaded on each subsequent
  3734.           running of the program unless changed. Developers should be
  3735.           careful not to store a file named EDIT.DBF in the DOS PATH unless
  3736.           you intend to invoke the edit checks contained therein whenever
  3737.           an application is run and a file named EDIT.DBF cannot be found
  3738.           in the default directory.
  3739.           
  3740.                Beginning with version 2.7 of WAMPUM, several enhancements                                             WAMPUM                      
  3741.           were added to the EDIT checking module.  WAMPUM now supports both                                                   WAMPUM                  
  3742.           calculated fields through the EDIT process as well as "table
  3743.           lookup" to make certain that a field value appears in a given
  3744.           table of values.
  3745.           
  3746.                               Creating Calculated Fields                              Creating Calculated Fields
  3747.           
  3748.                To automatically calculate the value for a field, that field
  3749.           must be one of the fields in the active data base.  Typically,
  3750.           you would NOT want it to display on a data entry menu since its
  3751.           value will be changed automatically regardless of what the user
  3752.           enters.  This calculation capacity may be used to compute both
  3753.           dates and numeric values and where necessary can also compute
  3754.           values for character and logical fields.  To automatically
  3755.           calculate the value for a field, follow these steps:
  3756.           
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.                                        - 54 -
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.                (1)  In the EDITTEST field, the first character must be the
  3771.           equals sign (=).  This is followed by whatever selection criteria
  3772.           will be used to determine when the calculation IS performed.  If
  3773.           you want it done whenever a record is added or changed, then the
  3774.           EDITTEST field should look like the following:
  3775.           
  3776.                          =.T.                         =.T.
  3777.           
  3778.           WAMPUM keeps track of what mode it is in by setting a variable          WAMPUM                                                        
  3779.           HELPCODE to the number corresponding to the option picked from
  3780.           the Main System Menu, e.g. A - Add is 1, E - Edit is 2, etc.
  3781.           
  3782.           You may find it helpful to be able to perform calculated field
  3783.           transactions only when the user is in Edit mode or Add mode.  If
  3784.           you only wanted a field calculated when a new record was added,
  3785.           use the following syntax in the EDITTEST field:
  3786.           
  3787.                          =HELPCODE=1                         =HELPCODE=1
  3788.           
  3789.                (2)  In the ERRMSG field, two codes must be inserted and
  3790.           they are separated by a comma.  The first is the field number
  3791.           corresponding to the field to be calculated.  Then insert a
  3792.           comma.  Then enter any legal dBASE expression to handle the
  3793.           calculation desired.  A simple example may help.
  3794.           
  3795.           Assume that the data base contains a FILINGDT field as #1, a
  3796.           DAYSPEND field as #14, and a CLOSEDT field as #20.  Until a
  3797.           closing date entry has been made, we want the computer to
  3798.           recompute the days pending from the filing date whenever a new
  3799.           record is added or changed.  The field entries should look like
  3800.           the following:
  3801.           
  3802.                     EDITTEST: =EMPTY(FLDDATA[20])                              =EMPTY(FLDDATA[20])
  3803.           
  3804.                     ERRMSG:   14,DATE()-FLDDATA[1]                              14,DATE()-FLDDATA[1]
  3805.           
  3806.           
  3807.                               Using "Table-Lookup" for Editing                              Using "Table-Lookup" for Editing
  3808.           
  3809.                "Table lookup" for Editing means the ability of a data base
  3810.           system to refer to a table of values in order to determine
  3811.           whether a value entered by a user is acceptable.  Within WAMPUM,                                                                   WAMPUM 
  3812.           table-lookup is implemented using standard dBASE data bases for
  3813.           the tables.  These data bases may be checked either sequentially
  3814.           or through a Clipper-index file (.NTX) as the developer desires. 
  3815.           To perform "table lookup" as part of the edit checking process,
  3816.           the following rules must be met:
  3817.           
  3818.                (1)  In the EDITTEST field, the first character must be a
  3819.           question mark (?) if a non-indexed dBASE file will be used as the
  3820.           table.  Or two question marks (??) must be used if a dBASE file
  3821.           table will be checked using a Clipper index as the key.  The
  3822.           question mark or marks are followed by whatever selection
  3823.           criteria the developer wants to specify to tell WAMPUM when the
  3824.           table lookup SHOULD be performed.  See the examples above.
  3825.           
  3826.  
  3827.  
  3828.  
  3829.                                        - 55 -
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.                (2)  In the ERRMSG field, three values must be inserted with
  3837.           a comma between the values.
  3838.           
  3839.                     (a)  The first code is the number of the field to be
  3840.                          checked against the table. Then type a comma.
  3841.           
  3842.                     (b)  The second code is the dBASE file name of the
  3843.                          table to be checked (without the .DBF extension).
  3844.                          Then type a comma.
  3845.           
  3846.                     (c)  The third code is one of two values.  With a non-
  3847.                          indexed table lookup (?), the third code is the
  3848.                          name of the field in the table lookup file to be
  3849.                          compared.  With an indexed table lookup (??), the
  3850.                          third code is the name of the Clipper index file
  3851.                          (without .NTX extension) to use for the lookup.
  3852.           
  3853.           An example may help remove some of the mystery.  Assume your main
  3854.           data base has a field #8 for the user to enter the abbreviation
  3855.           of the STATE where the customer lives.  You want to make sure
  3856.           this entry is, in fact, a state in the United States.  Using
  3857.           WAMPUM, you build another data base with a file name of STATES          WAMPUM                                                        
  3858.           and an index called ABBREV which holds the two character abbre-
  3859.           viation for each state in the United States.  Your entries would
  3860.           look like the following in the EDIT record:
  3861.           
  3862.                     EDITTEST: ??.T.                              ??.T.
  3863.           
  3864.                     ERRMSG:   8,STATES,ABBREV                              8,STATES,ABBREV
  3865.           
  3866.           
  3867.                          Using "Table-Lookup" for Calculated Fields                         Using "Table-Lookup" for Calculated Fields
  3868.           
  3869.                Just as a table could be checked to verify data in your data                                                                           
  3870.           bases, WAMPUM also permits table-lookup to actually calculate the                 WAMPUM                                                    
  3871.           contents of fields in your primary data base.  The table may be
  3872.           accessed either sequentially or through a Clipper-index file                                                    _______           
  3873.           (.NTX) as the developer desires.  To calculate a table follow
  3874.           these simple steps in adding an entry to the EDIT file:
  3875.           
  3876.                (1)  In the EDITTEST field, the first character must be an
  3877.           exclamation point (!) if a non-indexed dBASE file will be used as
  3878.           the table.  Or two exclamation points (!!) must be used if a
  3879.           dBASE file table will be referenced using a Clipper index as the                                                      _______             
  3880.           key.  The exclamation point(s) are followed by whatever selection
  3881.           criteria the developer wants to specify to tell WAMPUM when the                                                          WAMPUM         
  3882.           table lookup calculation SHOULD be performed.  
  3883.           
  3884.                (2)  In the ERRMSG field, five values must be inserted with
  3885.           a comma between the values.
  3886.           
  3887.                     (a)  The first code is the number of the field in the
  3888.                          primary data base to be used to find a match in
  3889.                          the table. Then type a comma.
  3890.           
  3891.           
  3892.  
  3893.  
  3894.  
  3895.                                        - 56 -
  3896.  
  3897.  
  3898.  
  3899.  
  3900.  
  3901.  
  3902.                     (b)  The second code is the dBASE file name of the
  3903.                          table to be checked (without the .DBF extension).
  3904.                          Then type a comma.
  3905.           
  3906.                     (c)  The third code is one of two values.  With a non-
  3907.                          indexed table lookup (!), the third code is the
  3908.                          name of the field in the table lookup file to be
  3909.                          compared.  With an indexed table lookup (!!), the
  3910.                          third code is the name of the Clipper index file
  3911.                          (without .NTX extension) to use for the lookup.
  3912.                          Then type a comma.
  3913.           
  3914.                     (d)  The fourth code is the number of the field in the
  3915.                          primary data base to be calculated from the table.
  3916.                          Then type a comma.
  3917.           
  3918.                     (e)  The fifth code is any legal dBASE expression which
  3919.                          specifies the value to be calculated for the field
  3920.                          referenced in (2)(d) above.  This expression would
  3921.                          include references to one or more fields in the
  3922.                          table typically.
  3923.           
  3924.           By way of example, let us assume that a company maintains an
  3925.           ORDERS file with numerous pieces of information being captured
  3926.           about new orders.  Among these are the part number (field #1) and
  3927.           the part cost (field #2).  There also is a table of PARTS which
  3928.           contains the cost of each part (PARTCOST) in the company's
  3929.           inventory.  The developer wants to look up the cost of the part
  3930.           specified in the ORDERS file and insert it automatically into the
  3931.           part cost field in the ORDERS file.  The syntax to do this using
  3932.           a PARTS file indexed on part number would look like this:
  3933.           
  3934.                     EDITTEST: !!.T.                              !!.T.
  3935.           
  3936.                     ERRMSG:   1,PARTS,PARTNO,2,PARTCOST                              1,PARTS,PARTNO,2,PARTCOST
  3937.           
  3938.           
  3939.           
  3940.           3.1.13  Building Data Entry Menus (MENUS.DBF)
  3941.           
  3942.                Up to 9 customized data entry menus may be built for any
  3943.           given application.  These typically correspond to different
  3944.           stages in the data entry process for a given data base.  In
  3945.           addition to these 9 customized data entry menus, WAMPUM also                                                           WAMPUM     
  3946.           provides a standard data entry screen which includes access to
  3947.           every field in the current data base.
  3948.           
  3949.                These data entry menus are numbered 0 to 9 with 0 being the
  3950.           default standard menu with access to all fields.  In addition to
  3951.           specifying up to 9 custom menus, the developer may also restrict
  3952.           users without the developer password to a given range of menu
  3953.           numbers.  Thus, some care must be exercised to group the
  3954.           restricted and non-restricted menus into contiguous numbers.  A
  3955.           range of 1 to 5 is permissible, but you cannot allow access to
  3956.           menu 0 as well as menus numbered 2 to 6.
  3957.           
  3958.  
  3959.  
  3960.  
  3961.                                        - 57 -
  3962.  
  3963.  
  3964.  
  3965.  
  3966.  
  3967.  
  3968.                Information pertaining to the custom menus is stored in a
  3969.           standard dBASE file named MENUS which is created in the current
  3970.           default directory whenever WAMPUM is first invoked.  Each record                                     WAMPUM                               
  3971.           in the MENUS file corresponds to a custom menu with the same
  3972.           number.  Thus, record 1 contains information about menu 1, and so
  3973.           on.
  3974.           
  3975.                To build one or more custom menus, first start up WAMPUM in                                                                 WAMPUM   
  3976.           Developer Mode by specifying the developer password after the
  3977.           word WAMPUM.  Make certain that the File in Use at the bottom of               WAMPUM                                                     
  3978.           the screen is the one for which you want to build the custom
  3979.           menus.  If so, choose S - Select Utilities and change the List                                                                    ____                                S - Select Utilities                                                                                        ____
  3980.           File Structure field entry to T.  Then <PgDn> and print the file          ______________                                                  
  3981.           structure for reference. 
  3982.           
  3983.                When the Main System Menu reappears, pick F - File Select                                                         F - File Select
  3984.           and enter the file name of MENUS. Press <ENTER> and WAMPUM will                                                              WAMPUM     
  3985.           open the MENUS file.  When the Main System Menu reappears, make
  3986.           sure the bottom line of the screen shows the file name MENUS.
  3987.           
  3988.                To ADD a new custom menu, pick A - Add Records from the Main                                              A - Add Records              
  3989.           System Menu. A blank record will appear with two fields: MENUNAME                                                                   MENUNAME
  3990.           and FLDLIST.  As the name suggests, MENUNAME is whatever name you              FLDLIST                                                      
  3991.           want to assign to this custom menu, e.g. CASE OPENING MENU. Enter
  3992.           the title desired and press <ENTER> to move to the FLDLIST field.
  3993.           
  3994.                In FLDLIST, you specify the field numbers corresponding to
  3995.           the fields you want displayed on the data entry screen.  The
  3996.           sequence used to specify the numbers does not matter since the                                                    ___                 
  3997.           fields always are ordered according to their numeric position in
  3998.           the data base structure.  The format for these field numbers is
  3999.           CRITICAL!           ________  
  4000.           
  4001.                Rule 1: Each field number must be AT LEAST 3 characters in          _____________                                                  
  4002.           length with spaces to the left of the number to "pad" it to 3
  4003.           characters. For example, field 1 would require that you type two
  4004.           spaces and then the number 1.  27 would require one leading space
  4005.           and then the number 27.  
  4006.           
  4007.                Rule 2: Each field number must be preceded by at least one               ______                                                    
  4008.           space. Thus, field 106 would require a space then the number 106.
  4009.           
  4010.                Rule 3: As many fields may be specified as will fit within               ______                                                    
  4011.           the FLDLIST field observing the two rules above.  For example, to
  4012.           create a data entry menu with fields 1, 7, 21, and 107, FLDLIST
  4013.           should look like the following without the quotation marks which                                         _________________________________
  4014.           have been included only to assist in showing the spaces:          _______________________________________________________ 
  4015.           
  4016.                               "  1  7 21 107"                                 1  7 21 107 
  4017.           
  4018.                Once the FLDLIST field has been specified, press CTRL-W or
  4019.           <PgDn> to save the entry.  A new blank record will appear.  You
  4020.           may continue to add menus or <ESC> to exit to the Main System
  4021.           Menu.
  4022.           
  4023.  
  4024.  
  4025.  
  4026.  
  4027.                                        - 58 -
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.                Once the Main System Menu reappears, press <ESC>ape to exit
  4035.           to DOS.  Then restart WAMPUM in Developer Mode again.  When the                                WAMPUM                                   
  4036.           Main System Menu appears, pick S - Select Utilities and mark the                                         S - Select Utilities             
  4037.           Change Current Menu field as T and <PgDn>.          ____________________                      
  4038.           
  4039.                In Developer Mode, three fields will appear below the list
  4040.           of available menus:
  4041.           
  4042.                          (1)  Number of current menu to use
  4043.           
  4044.                          (2)  Minimum menu number
  4045.           
  4046.                          (3)  Maximum menu number
  4047.           
  4048.                For now, press <ENTER> to skip through the current menu
  4049.           field.  Then enter a value for the minimum menu number and the
  4050.           maximum which corresponds to the menus you have created and to
  4051.           which you want the users to have access.  Remember that if the
  4052.           minimum number is 0, users will be able to access and change
  4053.           every field in the data base!  Make certain that BOTH the minimum                                         __________________________________
  4054.           menu number and the maximum menu number do NOT exceed the value          _______________________________________________________________
  4055.           of the last record in the MENUS file.  The minimum and maximum          ____________________________________                          
  4056.           menu numbers may be the same number so long as the rule above is
  4057.           not violated.
  4058.           
  4059.                Once you have entered these values <PgDn> if necessary to
  4060.           return to the Main System Menu.  Now access the Menu Selection
  4061.           screen again by choosing S - Select Utilities, then mark Change                                                                   ______                                   S - Select Utilities                                                                                     ______
  4062.           Current Menu true, then <PgDn>.  The correct range of menu          ____________                                              
  4063.           choices should now be displayed.  Now set the value for the
  4064.           current menu to use and <PgDn> to return to the Main System Menu.
  4065.           Now you may SAVE this new configuration by selecting the option 
  4066.           G - Configuration Update then pressing <ENTER>.          G - Configuration Update                       
  4067.           
  4068.                You now are ready to test the application.  <ESC>ape to DOS
  4069.           and restart WAMPUM in user mode.  Select the A - Add Records                      WAMPUM                           A - Add Records
  4070.           option and make certain that the correct menu displays.  Press
  4071.           <ESC>ape.  Now choose S - Select Utilities and mark Change                                                              ______                                S - Select Utilities                                                                              ______
  4072.           Current Menu true and <PgDn>.  The correct range of menus should          ____________                                                    
  4073.           appear, and you should only be able to enter a number in the
  4074.           range specified.  If not, restart WAMPUM in Developer Mode and                                            WAMPUM                      
  4075.           change the ranges following the steps outlined above.
  4076.           
  4077.           
  4078.           3.1.14  Building an Audit Trail File (AUDIT.DBF)
  4079.           
  4080.                For a variety of reasons, it may be desirable to create an
  4081.           audit trail of all data added or changed in a data base.  This
  4082.           can be done as a means of verifying the accuracy of data posted
  4083.           to the data base.  Or it can be done in multi-user environments
  4084.           to provide update integrity to the master data base while many
  4085.           users share access to a copy of the data base from the previous
  4086.           day.  In the latter instance, the audit trail serves as a
  4087.           transaction log of new entries to the master data base.  These
  4088.           transaction logs can be built using numerous workstations.  Then
  4089.           at the end of the day all of the new transactions can be posted
  4090.  
  4091.  
  4092.  
  4093.                                        - 59 -
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.           to the master data base using WAMPUM's Copy Utilities.  Then the                                        WAMPUM                            
  4101.           new master is distributed, and the process begins again.  While
  4102.           it is not a true "multi-user" system, it offers many advantages
  4103.           until WAMPUM Multi-User arrives.                WAMPUM Multi-User         
  4104.           
  4105.                To invoke the AUDIT TRAIL/TRANSACTION LOGGING feature of
  4106.           WAMPUM, you must be using version 2.9 or later of the software.          WAMPUM                                                         
  4107.           You must assure that some field in your data base has unique          ____________________________________________________________
  4108.           values and is indexed before implementing transaction logging.          ______________________________________________________________
  4109.           This index must be set as the PRIMARY INDEX before executing a          ______________________________________________________________
  4110.           configuration update.  Then select the G - Config Update option          ____________________                                                                                            G - Config Update                 ____________________                                           
  4111.           and change the Enable Audit Trail? prompt to True.  Thereafter,                         ___________________                             
  4112.           WAMPUM will automatically create an AUDIT.DBF file in which it          WAMPUM                                                        
  4113.           will post any changes to the current data base using the index
  4114.           which was the current index at the time of configuration update          _______________________________________________________________
  4115.           as the key field in the event later transaction log posting is
  4116.           desired.
  4117.           
  4118.                It is the developer's responsibility to assure that the
  4119.           AUDIT.DBF file is periodically purged since it will continue to
  4120.           grow indefinitely until the Enable Audit Trail prompt is turned                                      __________________                 
  4121.           back off by setting it false.  Purging consists of deleting
  4122.           AUDIT.DBF and AUDIT.DBT from the current application directory
  4123.           with the following commands:
  4124.           
  4125.                          CD \{current application directory}                         CD \{current application directory}
  4126.                          DEL AUDIT.*                         DEL AUDIT.*
  4127.           
  4128.                Once these files are deleted, WAMPUM will recreate them the                                             WAMPUM                       
  4129.           next time WAMPUM is run in this directory.  See the section of                    WAMPUM                                              
  4130.           the User's Guide which addresses the COPY UTILITIES for infor-
  4131.           mation on posting transactions to the master data base from an
  4132.           audit trail file.
  4133.           
  4134.           
  4135.           3.1.15  Preformatted Output (WAMPUM.DBF)
  4136.           
  4137.           3.1.15.1  Overview
  4138.           
  4139.                WAMPUM PreFormatted Output is the feature for which many               WAMPUM                                                  
  4140.           dBASE users have clamored for years.  It is nothing more than a
  4141.           tool by which a developer can "hard-code" ALL required components
  4142.           of a report, label, or form letter process in advance.  Stated
  4143.           differently, it frees the end-user from having to specify which
  4144.           records should be printed and in what order every time a report
  4145.           is run.  How is this magic performed?  Very simply.  For each new
  4146.           application you develop, WAMPUM will create a separate data base                                   WAMPUM                                 
  4147.           file, WAMPUM.DBF, which stores up to 80 preformatted reports,
  4148.           labels, and form letters.  The end user then can call up a list
  4149.           of these preformatted output choices and mark the ones desired as
  4150.           True.  These then are produced automatically with no further user
  4151.           intervention.
  4152.           
  4153.           
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.                                        - 60 -
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.           3.1.15.2  Building the WAMPUM File
  4167.           
  4168.                The first step in developing WAMPUM Preformatted Output is                                            WAMPUM                       
  4169.           to create the WAMPUM.DBF file to store the information.  This is
  4170.           done by selecting W - WAMPUM PreFormatted Output from the Main                            W - WAMPUM PreFormatted Output              
  4171.           System Menu.  When WAMPUM asks whether to create the WAMPUM file,                             WAMPUM                                        
  4172.           respond with either T or Y to create the empty data base.
  4173.           
  4174.           
  4175.           3.1.15.3  Adding/Editing the WAMPUM File
  4176.           
  4177.                Building preformatted output is much like adding and editing
  4178.           data in any other .DBF file.  First, pick the F - File Select                                                        F - File Select
  4179.           option from the Main System Menu, and enter WAMPUM as the name of                                                      WAMPUM               
  4180.           the data base to use.
  4181.           
  4182.                When the Main System Menu returns, the bottom of the screen
  4183.           should show the file in use with the message: FILE: WAMPUM.                                                         FILE: WAMPUM  
  4184.           
  4185.                To create a new entry in the file, select the A - ADD record                                                             A - ADD record
  4186.           option.  To change an existing entry, select E - EDIT record.                                                       E - EDIT record 
  4187.           
  4188.                When the data entry screen appears, you will be prompted for
  4189.           the following items of information concerning the report, label,
  4190.           or form letter you wish to preformat:
  4191.           
  4192.                DATAFILE -  Enter the name of the primary data file which               DATAFILE                                                 
  4193.                          will be used in producing the output.  Do NOT
  4194.                          include the .DBF file extension.
  4195.           
  4196.                SORTINDX -  If you want the output sorted in a particular               SORTINDX                                                 
  4197.                          order, then you may specify the sort index by
  4198.                          entering the name of index file.  Do NOT enter the
  4199.                          .NTX file extension.  If this field is left blank,
  4200.                          the output will be produced in the actual order of
  4201.                          the records in the primary data base.
  4202.           
  4203.                RPTLBLFRM - Enter either R, L, or F to tell WAMPUM whether               RPTLBLFRM                                   WAMPUM        
  4204.                          the output will be a report (.FRM file), label
  4205.                          (.LBL file), or form letter (.DBF file).
  4206.           
  4207.                OUTFILE - Enter the name of the actual report form, label               OUTFILE                                                  
  4208.                          format, or form letter file.  Do NOT include the
  4209.                          file extension.
  4210.           
  4211.                FONT - Enter a number between 0 and 9 to identify which FONT               FONT                                                        
  4212.                          will be used in generating the output.  See the
  4213.                          section on Printer Configuration for more info.
  4214.           
  4215.                CRITERIA -  Enter the selection criteria just as they would               CRITERIA                                                   
  4216.                          be entered in the Select Utilities option
  4217.                          previously discussed.  Note that there is one
  4218.                          enhancement.  If there is a particular range of
  4219.                          dates you want to prompt for at execution time,
  4220.                          then you can specify the field to which the date
  4221.                          range will apply by surrounding that field with
  4222.  
  4223.  
  4224.  
  4225.                                        - 61 -
  4226.  
  4227.  
  4228.  
  4229.  
  4230.  
  4231.  
  4232.                          //'s.  For example, suppose you were generating a
  4233.                          report which would show new job applications
  4234.                          received for a certain period of time.  If the
  4235.                          field name storing the application date was
  4236.                          APPLICDT, then the following syntax in the
  4237.                          criteria would allow the user to enter a date
  4238.                          range at run time for the application date:
  4239.                          //APPLICDT//.                         //APPLICDT// 
  4240.           
  4241.                DESCRIP -  Enter a brief description for the output you just               DESCRIP                                                     
  4242.                          designed.  This is what will appear on the menu
  4243.                          when the user selects WAMPUM Preformatted Output.
  4244.           
  4245.                RELFILE1 -  Enter the file name of the file to be related to               RELFILE1                                                    
  4246.                          the primary data base when the output is run.  See
  4247.                          the section on Z - Zoom/Relate File for more info.                                        Z - Zoom/Relate File               
  4248.           
  4249.                RELINDX1 -  Enter the file name of the index to be used in               RELINDX1                                                  
  4250.                          relating the secondary file to a field in the
  4251.                          primary file.  See Z - Zoom/Relate File for info.                                            Z - Zoom/Relate File          
  4252.           
  4253.                Once all of the above entries have been made, a new record
  4254.           is stored in the WAMPUM.DBF file.  When you have added all of the
  4255.           entries desired.  Exit from  WAMPUM by pressing <ESC> from the                                       WAMPUM                           
  4256.           Main System Menu.  Then restart WAMPUM and select the W option to                                          WAMPUM                W          
  4257.           try out your new output.
  4258.           
  4259.           
  4260.           3.1.16  Resetting the Developer Password
  4261.           
  4262.                Beginning with version 2.2, WAMPUM provides the capability                                           WAMPUM                        
  4263.           to reset the developer password from VOODOO to some other
  4264.           password of your choice.  This is done using the DOS ENVIRONMENT
  4265.           and the SET command.  To reset the password, you should insert a
  4266.           line such as what appears below in the AUTOEXEC.BAT file in the
  4267.           root directory of the hard disk which will be used to boot the
  4268.           system.
  4269.           
  4270.                          SET WAMPUM=MOVOODOO                         SET WAMPUM=MOVOODOO
  4271.           
  4272.                The value of the WAMPUM environment variable beginning with                                                            ______________
  4273.           the THIRD character becomes the new developer password when the          ____________________ ______                                    
  4274.           system is restarted.  In the case outlined above, the password
  4275.           still would be VOODOO since the first and second characters are
  4276.           ignored.
  4277.           
  4278.                Note that this is anything but a secure system.  What it
  4279.           will do is keep the casual or novice user from entering WAMPUM in                                                                  WAMPUM   
  4280.           developer mode accidentally.
  4281.           
  4282.           
  4283.           3.1.17  Making a Backup of the User Application
  4284.           
  4285.                Once you have completed building a new application in its
  4286.           own subdirectory, this then can be saved using the BACKUP command
  4287.           for subsequent use by end-users.  When the application is
  4288.  
  4289.  
  4290.  
  4291.                                        - 62 -
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.           completed, simply type the following command substituting the
  4299.           name of the SUBDIRECTORY in which you built the application for
  4300.           the word SUBDIR below.  If you are using a drive other than Drive
  4301.           C, you would want to change the C: as well.                                          C:         
  4302.           
  4303.                     BACKUP C:\SUBDIR\*.* A:                    BACKUP C:\SUBDIR\*.* A:
  4304.           
  4305.                This will make a copy of the application on a formatted
  4306.           floppy in Drive A.
  4307.           
  4308.                The end user then can take this floppy and restore it to the
  4309.           system on which it will be run with the command:
  4310.           
  4311.                     RESTORE A: C:\*.* /S                    RESTORE A: C:\*.* /S
  4312.           
  4313.                The DOS Restore command automatically will construct the new
  4314.           subdirectory on their hard disk and then copy the application
  4315.           without any user knowledge of file copying.
  4316.           
  4317.           
  4318.           3.1.18  Writing the Documentation
  4319.           
  4320.                Perhaps the most important step in building a new
  4321.           application is to write some documentation explaining what the
  4322.           system does and how to use it.  For ease of use, the WAMPUM                                                               WAMPUM
  4323.           User's Guide has been paginated in such a way that the end-user
  4324.           section can be extracted and used as the first section of your
  4325.           completed documentation for any new application.  Don't
  4326.           distribute new applications without documentation!  It gives
  4327.           WAMPUM and yourself a bad name.          WAMPUM                         
  4328.           
  4329.           
  4330.           3.2  ! - RUNning an External Program
  4331.           
  4332.                Assuming you have sufficient memory, external programs can
  4333.           be run from within WAMPUM using the !- Run External Program                             WAMPUM           !- Run External Program
  4334.           option on the Main System Menu.  The following programs can be
  4335.           run: executable programs in either .EXE or .COM format and DOS
  4336.           batch files with .BAT file extension.  In addition, you can exit
  4337.           to the DOS level temporarily by entering \COMMAND.COM as the file
  4338.           name to run.  Note, this only works with DOS 3.0 and above. 
  4339.           Similarly, directory paths may precede program names with DOS 3.0
  4340.           or above.  Any program within the DOS PATH may be run without
  4341.           specifying the directory path.
  4342.           
  4343.           
  4344.           3.3  Z - ZOOMing or RELATing a Supplemental File
  4345.           
  4346.                WAMPUM provides the capability to link a secondary file for               WAMPUM                                                     
  4347.           purposes of report, label, and form letter output.  This can be
  4348.           done automatically within the WAMPUM Preformatted Output option,
  4349.           or it can be done manually using the Z - Zoom/Relate File option.                                               Z - Zoom/Relate File        
  4350.           
  4351.                There are many instances in which it is helpful to have a
  4352.           secondary file to provide "table lookup" of data which otherwise
  4353.           would have to be retyped in each record of a data base.  For
  4354.  
  4355.  
  4356.  
  4357.                                        - 63 -
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.           example, if each customer has an ACCOUNT NUMBER, it would be
  4365.           silly to build an orders file which required the entry of the
  4366.           customer's name, address, and phone number every time an order
  4367.           was placed.  Instead, the orders file could contain the customer
  4368.           number, and a secondary file could be used to "look up" the
  4369.           customer's name, address, and phone number whenever a report,
  4370.           label, or form letter was produced.
  4371.           
  4372.                There are four prerequisites for relating a secondary file
  4373.           with WAMPUM.  (1)  There must be an IDENTICAL field in both the               WAMPUM                                                    
  4374.           main data base and the related file; (2) the key field in the
  4375.           related file must be indexed on that key; (3) the index file name
  4376.           must be identical to the name of the key field; and (4) both the
  4377.           related file and its index must either be in the default
  4378.           directory or must be accessible via the DOS PATH.
  4379.           
  4380.                To link a secondary file, pick the Z - Zoom/Relate File                                                  Z - Zoom/Relate File
  4381.           option on the Main System menu.  Then enter the name of the
  4382.           secondary file and the index.  When the Main System Menu
  4383.           reappears, the last line of the screen will show a relation is in
  4384.           effect with the following expression:
  4385.           
  4386.                               FILE: ORDERS/R                              FILE: ORDERS/R
  4387.           
  4388.                Fields in the related file may then be accessed within
  4389.           report and label forms as well as within form letter files using
  4390.           the following syntax: ALIAS->FIELDNAME where ALIAS is the name of                                ALIAS->FIELDNAME                           
  4391.           the related file and FIELDNAME is the field name to be output.
  4392.           
  4393.                See the example below for further clarification of the
  4394.           process:
  4395.           
  4396.           CUSTOMER ORDER FILE (ORDERS.DBF)   CUSTOMER FILE (ACCOUNTS.DBF)          CUSTOMER ORDER FILE (ORDERS.DBF)   CUSTOMER FILE (ACCOUNTS.DBF)
  4397.           --------------------------------   ----------------------------          --------------------------------   ----------------------------
  4398.           
  4399.                ACCTNO    ---- RELATED FIELD --->       ACCTNO   (INDEXED)                ACCTNO    ---- RELATED FIELD --->       ACCTNO   (INDEXED) 
  4400.                               
  4401.                ORDERDT                                 CUSTNAME               ORDERDT                                 CUSTNAME
  4402.           
  4403.                ITEMS                                   ADDRESS               ITEMS                                   ADDRESS
  4404.           
  4405.                                                        PHONE                                                       PHONE
  4406.           
  4407.                As a FIELD CONTENTS entry in the report form, you could then
  4408.           specify  ACCOUNTS->CUSTNAME once the ACCOUNTS file was related                   ACCOUNTS->CUSTNAME                                   
  4409.           using the ACCTNO index.  This would tell WAMPUM to output the                                                   WAMPUM              
  4410.           actual customer name rather than the account number found in the
  4411.           orders file.
  4412.           
  4413.           
  4414.           3.4  C - Copy Utilities for Importing & Exporting Data
  4415.           
  4416.                WAMPUM's C - Copy Utilities option provides a rich variety               WAMPUM   C - Copy Utilities                               
  4417.           of file importing and exporting tools permitting standard dBASE
  4418.           data bases to be transferred into or out of virtually all of the
  4419.           common file formats.  In addition, a data base structure file can
  4420.  
  4421.  
  4422.  
  4423.                                        - 64 -
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.  
  4430.           be created which permits simple revision of a data base structure
  4431.           where additional fields become desirable after an application has
  4432.           been built. With the exception of the dBASE III structure and
  4433.           audit trail  options, you can narrow down which records will be
  4434.           copied by first specifying selection criteria using the S -                                                                  S -
  4435.           Select Utilities option.  You will be prompted whether to          Select Utilities                                         
  4436.           override the selection.
  4437.           
  4438.                When the C - Copy Utilities option is selected, you                        C - Copy Utilities                        
  4439.           initially are prompted for three pieces of information:  (1)
  4440.           whether you will be COPYing data TO or FROM another file from the
  4441.           file currently in use; (2) the file type of the other file; and
  4442.           (3) the file name of the other file.
  4443.           
  4444.                Copying TO Another File requires that the first prompt be               Copying TO Another File                                  
  4445.           answered with a T.  Then a file type is specified. And then the
  4446.           file name of the receiving file is specified.  
  4447.           
  4448.                If you specify a dBASE III type data base file as the
  4449.           receiving file, then one will be created if the file name
  4450.           specified does not already exist.  If it exists, you will be
  4451.           asked whether to Abort, Overwrite, or Append to the existing
  4452.           external file.
  4453.           
  4454.                If you specify COPY TO a dBASE III Structure, WAMPUM will                                                             WAMPUM     
  4455.           copy the structure of the current data base into a new .DBF file
  4456.           with four fields: Field_Name, Field_Type, Field_Len, and
  4457.           Field_Dec.  Each record entry in the new file will match a field
  4458.           in the structure of the current data base.  This file then can be
  4459.           added to, edited, records can be deleted, etc.  Once revised,
  4460.           this file then can be used as the new file structure template for
  4461.           transferring the current data base into a new file structure. 
  4462.           This is covered in detail below.
  4463.           
  4464.                If you COPY TO a Standard Data Format file, WAMPUM will                                                           WAMPUM     
  4465.           create a new flat file consisting of all the selected data in the
  4466.           current data base in ASCII format.  Each record will occupy one
  4467.           line in the new file with a carriage return/line feed at the end
  4468.           of the line.
  4469.           
  4470.                COPYing TO a Delimited Format file permits the user to
  4471.           identify what character should be used to surround each character
  4472.           field in the new data base.  For example, BASIC expects character
  4473.           fields in a sequential file to be delimited with QUOTES.
  4474.           
  4475.                COPYing TO an Audit Trail file is never permissible.  You
  4476.           may edit the AUDIT file just as you would edit any other file.
  4477.           
  4478.                Copying From Another File means that you will be IMPORTING               Copying From Another File                                 
  4479.           data from another file INTO the data base file currently in use. 
  4480.           The only exception is the dBASE III Structure option covered
  4481.           below.  To COPY FROM another file, enter F at the To/From prompt.
  4482.             
  4483.                If you COPY FROM another dBASE III data base, then the
  4484.           information in ALL records in that data base will be appended to
  4485.           the data already in the current data base.  Only field data whose
  4486.  
  4487.  
  4488.  
  4489.                                        - 65 -
  4490.  
  4491.  
  4492.  
  4493.  
  4494.  
  4495.  
  4496.           field names and type match exactly those of the current data base
  4497.           will be copied.  Existing records in the current data base will
  4498.           not be deleted.
  4499.           
  4500.                If you COPY FROM a Standard Data Format file, its records
  4501.           are appended to the information, if any, which already exists in
  4502.           the current data base.  Note that the current dBASE III file
  4503.           structure should be created first to match the format of the SDF
  4504.           file.  If you don't understand this, obtain a good dBASE III
  4505.           Primer before attempting to use this option or the next one.
  4506.           
  4507.                If you COPY FROM a Delimited file, its records are appended
  4508.           to the information, if any, which already exists in the current
  4509.           data base.  Note that the current dBASE III file structure should
  4510.           be created first to match the format of the delimited file.
  4511.           
  4512.                COPYING FROM a dBASE III Structure is WAMPUM's way of                                                     WAMPUM         
  4513.           allowing you to modify the structure of the current data base and
  4514.           move the file contents to a new dBASE III file.  To modify a
  4515.           file's structure, follow the steps outlined above to create and
  4516.           revise a new dBASE III structure file.  Once completed, place the
  4517.           original dBASE III data base file back in use with F - File                                                             F - File
  4518.           Select. Then pick the COPY FROM option and specify option 2, a          Select                                                        
  4519.           dBASE III Structure.  Enter the name of the structure file as the
  4520.           external file.  You then will be prompted to enter a name for a
  4521.           new dBASE III data base file to be built using the new structure                                                   _______________________
  4522.           and the data from the data base file currently in use.  Enter a          _____________________________________________________          
  4523.           name of your choice and press <ENTER>.  Once completed, place the
  4524.           new file in use and check the data to assure that it copied what
  4525.           you intended before deleting the old data base!  Once you are                       _________________________________               
  4526.           certain that it looks the way it should, you should reindex the
  4527.           file following the instructions in the I - Index Select/Create                                                 I - Index Select/Create
  4528.           section of this User's Guide.  You then can delete the original
  4529.           data base preferably after making a backup copy to a floppy.
  4530.           
  4531.                COPYING FROM an Audit Trail file is WAMPUM's way of allowing                                                   WAMPUM                  
  4532.           posting from a transaction file.  To use this option requires
  4533.           version 2.9 or later of WAMPUM.  In addition, the developer must                                  WAMPUM                                  
  4534.           have set the AUDIT TRAIL flag True for this application when the
  4535.           G - Config Update option was run. And, the audit flag must be set          G - Config Update                                                
  4536.           to False before posting to the master data base begins.  Assuming
  4537.           the above conditions have been met, a file will exist in the
  4538.           default directory named AUDIT.DBF.  This should be entered as the
  4539.           external file name or simply enter the drive designator
  4540.           indicating the drive location of the AUDIT files, e.g. C: or A:
  4541.           with a floppy.  For the transaction posting to work, the current
  4542.           file and lead index must match the file and lead index designated
  4543.           when the audit trail file was created.  Otherwise, an error
  4544.           message will be given indicating what the required file and index
  4545.           must be.  If no error condition is present, then WAMPUM will post                                                           WAMPUM          
  4546.           all information in the audit file to the current data base and
  4547.           will notify the user when this has been completed.  Remember that                                                              _____________
  4548.           the values in the lead index must be unique or the AUDIT file          _____________________________________________________________
  4549.           will be posted to the first matching key found in the index. Note          ___________________________________________________________      
  4550.           also that this function is accessible only to users with the
  4551.           developer password.
  4552.  
  4553.  
  4554.  
  4555.                                        - 66 -
  4556.  
  4557.  
  4558.  
  4559.  
  4560.  
  4561.  
  4562.           3.5  Deleting & Undeleting Groups of Records
  4563.           
  4564.                WAMPUM provides a means of marking a group of records as               WAMPUM                                                  
  4565.           DELETED as well as a means of restoring a group of records which
  4566.           already have been marked for deletion.  To use this function, you
  4567.           must start WAMPUM with the Developer Password!  You also must                     WAMPUM                                            
  4568.           have specified Record Selection Criteria, and there must be a                         _________________________                     
  4569.           primary index which evaluates to a character expression.  If any
  4570.           of these three prerequisites is missing, WAMPUM ignores the                                                   WAMPUM            
  4571.           attempt to delete or undelete a group of records just as if the
  4572.           function did not exist.
  4573.           
  4574.                Once the above prerequisites have been satisfied, you
  4575.           should first run a sample listing using the List File                 _____                                _________
  4576.           Contents option in the S - Select Utilities.  This will assure          _________                                                                                      S - Select Utilities                             _________                                                     
  4577.           that you are working with the group of records desired.
  4578.           
  4579.                Next, pick the function desired: either M - Mark Records                                                       M - Mark Records
  4580.           *DEL* or U - UN*DEL* Records.  When WAMPUM prompts for the entry          *DEL*    U - UN*DEL* Records        WAMPUM                      
  4581.           to find, type an asterisk (*) and press <ENTER>.  If the
  4582.           prerequisites in the first paragraph have been met, WAMPUM will                                                              WAMPUM     
  4583.           ask if you really want to DELETE or RESTORE the selected group of
  4584.           records.  Type Y if you want to proceed, or press <ESC> to abort.
  4585.           
  4586.                This function provides a quick way to mark a large group of
  4587.           records deleted once the same group of records has been archived
  4588.           to a different file.  When the X - Rebuild/FileFix option is then                                         X - Rebuild/FileFix               
  4589.           run, the group of records is deleted permanently and cannot be
  4590.           restored with the U - UN*DEL* Records function.                            U - UN*DEL* Records function 
  4591.           
  4592.                Note that this function requires an active Record Selection                                                          ________________
  4593.           Criteria expression to avoid the possibility of marking every          ________                                                     
  4594.           record in a file as deleted.  If you really want to delete all
  4595.           records in a file, use the following Record Selection Criteria:                                               _________________________ 
  4596.           
  4597.                               RECNO() >= 1                              RECNO() >= 1
  4598.           
  4599.           This expression specifies ALL RECORDS in the file for WAMPUM.                                                                WAMPUM 
  4600.           
  4601.           
  4602.           3.6  Reserved Variables & Special Functions
  4603.           
  4604.           3.6.1   Overview
  4605.           
  4606.                In addition to a number of reserved functions provided in
  4607.           the standard implementation of the dBASE III programming
  4608.           language, WAMPUM adds all Clipper enhancements plus some new                                    _______                                               WAMPUM                                                                                _______                           
  4609.           functions of its own.  This section is designed to bring you up
  4610.           to speed on these new functions and some of the major dBASE III
  4611.           commands and functions.  It is by no means an exhaustive
  4612.           treatment of all dBASE III commands and functions.  Consult any
  4613.           of the dBASE III reference books in your local bookstore for more
  4614.           information on the dBASE III commands and functions.
  4615.           
  4616.           
  4617.  
  4618.  
  4619.  
  4620.  
  4621.                                        - 67 -
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.           3.6.2   LASTUPDT field in data bases
  4629.           
  4630.                If LASTUPDT is included as a Date-type field in any data
  4631.           base, WAMPUM will automatically post the current date to this                WAMPUM                                                 
  4632.           field whenever a record is ADDed or EDITed in that data base. 
  4633.           This provides a convenient method of determining when records
  4634.           were last updated with no user control over the field contents.
  4635.           
  4636.           
  4637.           3.6.3   LASTTIME field in data bases
  4638.           
  4639.                If LASTTIME is included as a Character-type field in any                  LASTTIME                                             
  4640.           data base, WAMPUM will automatically post the current time to                     WAMPUM                                            
  4641.           this field whenever a record is ADDed or EDITed in that data
  4642.           base.  This provides a convenient method of determining when
  4643.           records were last updated with no user control over the field
  4644.           contents.
  4645.           
  4646.           
  4647.           3.6.4   DUPKEY("FIELDNAME") prevents duplicate keys
  4648.           
  4649.                When building the EDIT.DBF edit checks, many users expressed
  4650.           a desire to be able to test whether the key field of the record
  4651.           being added to a data base already existed and, if so, to return
  4652.           an error. This is critical if you will be using the AUDIT TRAIL                    _____________________________________________________
  4653.           function. The DUPKEY function of WAMPUM provides this capability.          __________                                                                                                  WAMPUM                                    __________                                                       
  4654.           In order to use it, the following conditions must be met.  First,
  4655.           the key field to be checked must be indexed.  Second, that index
  4656.           must be the primary (first) index in use when the file is ADDed
  4657.           to or EDITed.  Finally, the name of the key field must be
  4658.           specified in parentheses and quotation marks as an edit check in
  4659.           the EDIT.DBF file.  The syntax is shown in the following example
  4660.           using PARTNO as the name of the indexed key field which is to be
  4661.           checked:
  4662.           
  4663.                               DUPKEY("PARTNO")                              DUPKEY("PARTNO")
  4664.           
  4665.                     
  4666.           
  4667.           
  4668.           3.6.5   FULLDATE(DATE()) outputs May 27, 1986 format
  4669.           
  4670.                In producing reports and labels, you can reformat a date
  4671.           field into a standard date character string using the WAMPUM                                                                WAMPUM
  4672.           function FULLDATE().  The syntax is FULLDATE(FILINGDT) assuming                                              FULLDATE(FILINGDT)         
  4673.           FILINGDT was a date field in your data base.  If the filing date
  4674.           were 10/20/85, FULLDATE(FILINGDT) would output October 20, 1985.
  4675.           
  4676.           
  4677.           3.6.6   DTOS(DATE()) outputs 19860527 string
  4678.           
  4679.                Clipper provides a date-to-string conversion function with               _______                                                   
  4680.           the DTOS() command.  The syntax is DTOS(FILINGDT).  Assuming a                                             DTOS(FILINGDT)             
  4681.           filing date of 10/10/85, DTOS(FILINGDT) would output the string
  4682.  
  4683.  
  4684.  
  4685.  
  4686.  
  4687.                                        - 68 -
  4688.  
  4689.  
  4690.  
  4691.  
  4692.  
  4693.  
  4694.           "19851010".  This function is particularly helpful in building
  4695.           indexes where a date field is converted to a string, but the
  4696.           developer wishes to preserve the proper ordering of dates.
  4697.           
  4698.           
  4699.           3.6.7   WEEKDAY(DATE()) rolls weekend over to Mon.
  4700.           
  4701.                In some applications, it may be desirable to roll a date
  4702.           over to Monday if it hits on a weekend.  WAMPUM's WEEKDAY()                                                   WAMPUM            
  4703.           function does this.  Assuming a filing date of 06/14/86 hits on a
  4704.           Saturday, the expression WEEKDAY(FILINGDT) would return a date                                   WEEKDAY(FILINGDT)                    
  4705.           expression with a value of 06/16/86 which is the following
  4706.           Monday. Note that this function could be combined with a previous
  4707.           one to produce a standard text date:FULLDATE(WEEKDAY(FILINGDT)).                                              FULLDATE(WEEKDAY(FILINGDT)) 
  4708.           
  4709.           
  4710.           3.6.8   DATE() outputs today's date as 05/27/86
  4711.           
  4712.                WAMPUM supports the dBASE III function for today's date               WAMPUM                                                 
  4713.           which is DATE() as well as the reserved word TODAY which also is                   DATE()                              TODAY              
  4714.           today's date in date format.
  4715.           
  4716.           
  4717.           3.6.9   DTOC(DATE()) outputs date as 05/27/86 string
  4718.           
  4719.                The standard dBASE III means of converting a date to a
  4720.           character string is supported.  DTOC(DATE()) would convert                                          DTOC(DATE())              
  4721.           today's date to a character string in the format 06/12/86.
  4722.           
  4723.           
  4724.           3.6.10  MEMOTRAN(fieldname) outputs MEMO fields
  4725.           
  4726.                MEMOTRAN(FieldName) is a Clipper function designed to assure                                        _______                                           MEMOTRAN(FieldName)                                                                                 _______                            
  4727.           that MEMO fields are output correctly in reports.  See the
  4728.           discussion in the Reports section of this User's Guide.
  4729.           
  4730.           
  4731.           3.6.11  EMPTY(fieldname) tests for empty fields
  4732.           
  4733.                EMPTY(FieldName) returns a logical True if a character,               EMPTY(FieldName)                                       
  4734.           memo, or date field is empty, or if a numeric field is 0, or if a
  4735.           logical field is False.  Otherwise, a logical False is returned.
  4736.           
  4737.           
  4738.           3.7  PATH considerations with WAMPUM
  4739.           
  4740.                Whenever WAMPUM is started, part of its initialization                        WAMPUM                                       
  4741.           process includes reading the DOS PATH which then becomes WAMPUM's                                                                   WAMPUM  
  4742.           PATH as well.  For this reason, developers need to be careful NOT
  4743.           to build WAMPUM applications in a directory which is part of the
  4744.           DOS PATH since all of the files in this directory then would be
  4745.           accessed by other WAMPUM applications.  What should be stored in                            WAMPUM                                        
  4746.           a directory supported by the DOS PATH command are the following
  4747.           files: WAMPUM.EXE, REPORT.EXE, LABEL.EXE, and the printer config
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.                                        - 69 -
  4754.  
  4755.  
  4756.  
  4757.  
  4758.  
  4759.  
  4760.           files such as HPLASERA.MEM, HPLASERB.MEM, and EPSON.MEM.  This
  4761.           will make all of these files accessible to users in any WAMPUM                                                                  WAMPUM
  4762.           subdirectory.  
  4763.           
  4764.                The only exception to these guidelines might be in
  4765.           situations in which a related file and its index need to be
  4766.           shared with several different applications.  In this case, just
  4767.           the related file and index should be placed in a directory
  4768.           supported by the DOS PATH command, NOT the configuration files
  4769.           for the WAMPUM application itself.  If you don't understand this                  WAMPUM                                                  
  4770.           exception, don't use it.
  4771.           
  4772.           
  4773.           3.8  WAMPUM System Errors
  4774.           
  4775.                WAMPUM System Errors are error conditions caused by one of               WAMPUM                                                    
  4776.           three conditions: (1) a DOS-error is detected, (2) a Clipper                                                               _______
  4777.           error is detected, or (3) the abort program key (ALT-C) is
  4778.           pressed by the user.  In any of these three situations, a system
  4779.           error message appears on the top line of the screen followed by a
  4780.           prompt asking Quit, Abort, Ignore.  What follows is a brief                        Q     A      I                               
  4781.           description of what to do in each of these error situations.
  4782.           
  4783.                DOS errors typically are caused by a hardware failure such
  4784.           as a bad hard disk, a missing floppy disk in Drive A, or an out
  4785.           of memory condition.  With any DOS error, you should always                                                               ______
  4786.           select the Quit option.  This option gracefully closes all open                     Q                                                   
  4787.           data bases and indexes and assures that no permanent damage is
  4788.           done to your data.  Abort should never be used since this forces                              A                                           
  4789.           an immediate exit to DOS without closing any files. Ignore should                                                              I            
  4790.           never be used except in the circumstance where you have forgotten
  4791.           to insert a floppy disk and you are attempting to execute a copy
  4792.           to Drive A.
  4793.           
  4794.                Clipper errors typically occur when WAMPUM encounters an               _______                                                                                                    WAMPUM                             _______                                                 
  4795.           illegal dBASE expression in a report or label form, in macro
  4796.           expressions or edit checks, or in a record selection
  4797.           specification.  For example, if you entered LASTNAME=Jones as a                                                      LASTNAME=Jones     
  4798.           record selection criteria without surrounding Jones in quotes, a
  4799.           system error would occur whenever you executed a report, label,
  4800.           form letter, or listing of the file. Unfortunately, the current
  4801.           version of the Clipper compiler provides no means for WAMPUM to                         _______                                                                                                         WAMPUM                            _______                                         
  4802.           test such expressions for validity before executing them.  Once
  4803.           Clipper attempts to execute an invalid expression, a system error          _______                                                          
  4804.           occurs. You are generally safer executing the Quit option when                                                        Q               
  4805.           these conditions occur.  You then can revise the offending code
  4806.           and try again. In the case of invalid dBASE expressions, you
  4807.           usually can opt to Ignore the error so long as you understand                             I                                         
  4808.           that the results of any output produced may be erroneous.
  4809.           
  4810.                There may be occasions when you want to cancel some WAMPUM                                                                   WAMPUM
  4811.           session usually because a report listing is not producing the
  4812.           results desired and you do not want to waste 100 sheets of paper.
  4813.           You can always press ALT-C to cancel what you are doing.  Then                               ALT-C                                    
  4814.           select the Quit option to assure that all of your data bases are                     Q                                                    
  4815.  
  4816.  
  4817.  
  4818.  
  4819.                                        - 70 -
  4820.  
  4821.  
  4822.  
  4823.  
  4824.  
  4825.  
  4826.           closed gracefully.  Do NOT press CTRL-ALT-DEL as a means of                              _______________________________________
  4827.           terminating WAMPUM.  This may result in damage to any data bases          __________________                                                                    WAMPUM                                                        __________________                                              
  4828.           which are in use at the time.  
  4829.           
  4830.           
  4831.           3.9  Credits
  4832.           
  4833.                The following are trademarks or registered trademarks of the
  4834.           respective companies:
  4835.           
  4836.                Clipper                                 Nantucket, Inc.               _______                                                
  4837.                dBASE, dBASE III, and dBASE III Plus    Ashton-Tate
  4838.                LOTUS, 1-2-3, and Symphony              LOTUS Development Co
  4839.                IBM, IBM PC, and IBM PC-AT              IBM Corp
  4840.                HP LaserJet                             Hewlett Packard
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.  
  4862.  
  4863.  
  4864.  
  4865.  
  4866.  
  4867.  
  4868.  
  4869.  
  4870.  
  4871.  
  4872.  
  4873.  
  4874.  
  4875.  
  4876.  
  4877.  
  4878.  
  4879.  
  4880.  
  4881.  
  4882.  
  4883.  
  4884.  
  4885.                                        - 71 -
  4886.  
  4887.  
  4888.